Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Issue 23903012: Set up scroll and clip parents (Closed)

Created:
7 years, 3 months ago by Ian Vollick
Modified:
7 years, 3 months ago
CC:
blink-reviews, kenneth.christiansen, jamesr, eae+blinkwatch, leviw+renderwatch, abarth-chromium, blink-layers+watch_chromium.org, dglazkov+blink, jchaffraix+rendering, shawnsingh
Visibility:
Public.

Description

Set up scroll and clip parents There are two interesting components to this patch. 1) I've added an ancestor scroll clipping layer to the RLB's hierarchy. This is used to ensure that the clip required by scroll children is processed in cc before we visit the scroll children. In previous versions of this patch, this required some awkward math, but I realized that this layer shares the same size and position as our scroll parent's m_scrollingLayer, so I could just steal those values. However, to use this I had to... 2) update RLC::rebuildCompositingLayerTree and RLC::updateLayerTreeGeometry so that we visit our children in an order that guarantees scroll parents will be visited before scroll children. This turned out to be relatively simple. We can visit the children in any order, provided that when we're rebuilding the layer tree we populate the list of child layers in the correct order. So we can visit the normal flow list first (which is where the scroll parent will usually live and where scroll children -- who must be stacking containers -- will not live), and modify the pos/neg z-order list traversal so that we could visit scroll parents ahead of time, if necessary (the scroll parent can potentially be in the pos z-order list (with z-index 0) if it has a positioned ancestor). This is blink-side patch 5 of https://docs.google.com/a/chromium.org/document/d/1Ln57_v6_4RmuuvtWnpsfBOUeDFrPsYNFW13dwuQ8UD8 For more details, please refer to the design doc https://docs.google.com/document/d/1Ln57_v6_4RmuuvtWnpsfBOUeDFrPsYNFW13dwuQ8UD8/edit?usp=sharing BUG=249349, 249357 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=157710

Patch Set 1 : . #

Patch Set 2 : . #

Total comments: 8

Patch Set 3 : . #

Patch Set 4 : . #

Total comments: 11

Patch Set 5 : Addressing enne's review. #

Total comments: 6

Patch Set 6 : Addressed enne's review. Update one more recursive fn that calls RLB::updateGraphicsLayerGeometry. #

Patch Set 7 : Make WebLayer additions pure virtual. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+629 lines, -89 lines) Patch
A LayoutTests/compositing/overflow/ancestor-scroll-clipping-layer.html View 1 1 chunk +136 lines, -0 lines 0 comments Download
A + LayoutTests/compositing/overflow/ancestor-scroll-clipping-layer-expected.txt View 1 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/page/scrolling/ScrollingCoordinator.h View 1 2 3 4 5 1 chunk +3 lines, -0 lines 0 comments Download
M Source/core/page/scrolling/ScrollingCoordinator.cpp View 1 2 3 4 5 1 chunk +26 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderLayer.h View 1 2 3 4 2 chunks +5 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderLayer.cpp View 1 2 3 4 5 3 chunks +92 lines, -11 lines 0 comments Download
M Source/core/rendering/RenderLayerBacking.h View 1 2 3 4 5 4 chunks +83 lines, -9 lines 0 comments Download
M Source/core/rendering/RenderLayerBacking.cpp View 1 2 3 4 5 13 chunks +79 lines, -5 lines 0 comments Download
M Source/core/rendering/RenderLayerCompositor.h View 1 2 3 4 5 2 chunks +13 lines, -4 lines 0 comments Download
M Source/core/rendering/RenderLayerCompositor.cpp View 1 2 3 4 5 13 chunks +114 lines, -53 lines 0 comments Download
M Source/core/testing/Internals.h View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M Source/core/testing/Internals.cpp View 1 2 3 4 5 1 chunk +55 lines, -6 lines 0 comments Download
M Source/core/testing/Internals.idl View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M public/platform/WebLayer.h View 1 2 3 4 5 6 1 chunk +10 lines, -0 lines 0 comments Download

Messages

Total messages: 17 (0 generated)
Ian Vollick
Hey enne! This is the ready-for-review version of https://codereview.chromium.org/22419002/. I've managed to get rid of ...
7 years, 3 months ago (2013-09-05 02:49:03 UTC) #1
Ian Vollick
On 2013/09/05 02:49:03, Ian Vollick wrote: > Hey enne! > > This is the ready-for-review ...
7 years, 3 months ago (2013-09-05 03:07:09 UTC) #2
Ian Vollick
On 2013/09/05 03:07:09, Ian Vollick wrote: > On 2013/09/05 02:49:03, Ian Vollick wrote: > > ...
7 years, 3 months ago (2013-09-05 21:11:26 UTC) #3
hartmanng
https://codereview.chromium.org/23903012/diff/15001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/23903012/diff/15001/Source/core/rendering/RenderLayer.cpp#newcode2100 Source/core/rendering/RenderLayer.cpp:2100: // rects. Semantically, though, this is const, so we ...
7 years, 3 months ago (2013-09-06 01:46:37 UTC) #4
Ian Vollick
https://codereview.chromium.org/23903012/diff/15001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/23903012/diff/15001/Source/core/rendering/RenderLayer.cpp#newcode2100 Source/core/rendering/RenderLayer.cpp:2100: // rects. Semantically, though, this is const, so we ...
7 years, 3 months ago (2013-09-06 02:38:10 UTC) #5
hartmanng
rebuildCompositingLayerTreeForLayerAndScrollParents() is still a bit tough to grasp, but I think overall it's looking pretty ...
7 years, 3 months ago (2013-09-06 20:35:19 UTC) #6
Ian Vollick
Thanks for the review, Glenn. Hopefully the comments are beefy enough now. https://codereview.chromium.org/23903012/diff/15001/Source/core/rendering/RenderLayerCompositor.cpp File Source/core/rendering/RenderLayerCompositor.cpp ...
7 years, 3 months ago (2013-09-06 23:00:58 UTC) #7
hartmanng
On 2013/09/06 23:00:58, Ian Vollick wrote: > Thanks for the review, Glenn. Hopefully the comments ...
7 years, 3 months ago (2013-09-08 18:30:02 UTC) #8
enne (OOO)
https://codereview.chromium.org/23903012/diff/31001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/23903012/diff/31001/Source/core/rendering/RenderLayer.cpp#newcode5369 Source/core/rendering/RenderLayer.cpp:5369: // want to scroll the root of the layer's ...
7 years, 3 months ago (2013-09-10 23:45:01 UTC) #9
Ian Vollick
Thanks for the review! I've tried to address your review and I've added some pretty ...
7 years, 3 months ago (2013-09-11 17:57:51 UTC) #10
enne (OOO)
lgtm https://codereview.chromium.org/23903012/diff/31001/Source/core/rendering/RenderLayerCompositor.cpp File Source/core/rendering/RenderLayerCompositor.cpp (right): https://codereview.chromium.org/23903012/diff/31001/Source/core/rendering/RenderLayerCompositor.cpp#newcode1052 Source/core/rendering/RenderLayerCompositor.cpp:1052: // compositing layer tree for curLayer will use ...
7 years, 3 months ago (2013-09-11 23:18:29 UTC) #11
Ian Vollick
+eseidel for public/platform https://codereview.chromium.org/23903012/diff/45001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/23903012/diff/45001/Source/core/rendering/RenderLayer.cpp#newcode2080 Source/core/rendering/RenderLayer.cpp:2080: // Now, if we reside in ...
7 years, 3 months ago (2013-09-12 03:17:52 UTC) #12
eseidel
re: public/api review: Jamesr or abarth are much more versed in the WebKit API conventions ...
7 years, 3 months ago (2013-09-12 03:24:40 UTC) #13
jamesr
public/ lgtm, but it'd be even better if you landed the chromium implementation of these ...
7 years, 3 months ago (2013-09-12 19:26:31 UTC) #14
Ian Vollick
On 2013/09/12 19:26:31, jamesr wrote: > public/ lgtm, but it'd be even better if you ...
7 years, 3 months ago (2013-09-12 19:36:38 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vollick@chromium.org/23903012/59002
7 years, 3 months ago (2013-09-12 19:37:05 UTC) #16
commit-bot: I haz the power
7 years, 3 months ago (2013-09-12 22:56:26 UTC) #17
Message was sent while issue was closed.
Change committed as 157710

Powered by Google App Engine
This is Rietveld 408576698