DescriptionSet 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. #Messages
Total messages: 17 (0 generated)
|