Index: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h |
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h |
index 8e9bb8b0bea0a16806146b6f85941cf2cbbb506b..51abb35713f2da414331d12f9adbf2ba218ba168 100644 |
--- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h |
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h |
@@ -111,6 +111,7 @@ public: |
GraphicsLayer* parentForSublayers() const; |
GraphicsLayer* childForSuperlayers() const; |
+ void setSublayers(const GraphicsLayerVector&); |
bool hasChildTransformLayer() const { return m_childTransformLayer; } |
GraphicsLayer* childTransformLayer() const { return m_childTransformLayer.get(); } |
@@ -329,9 +330,9 @@ private: |
// | + m_childContainmentLayer [OPTIONAL] <-OR-> m_scrollingLayer [OPTIONAL] |
// | + m_scrollingContentsLayer [Present iff m_scrollingLayer is present] |
// | + m_scrollingBlockSelectionLayer [Present iff m_scrollingLayer is present] |
- // + m_overflowControlsClippingLayer [OPTIONAL] // *The overflow controls may need to be repositioned in the |
- // + m_overflowControlsHostLayer [OPTIONAL] // graphics layer tree by the RLC to ensure that they stack |
- // + m_layerForVerticalScrollbar [OPTIONAL] // above scrolling content. |
+ // + m_overflowControlsAncestorClippingLayer [OPTIONAL] // *The overflow controls may need to be repositioned in the |
+ // + m_overflowControlsHostLayer [OPTIONAL] // graphics layer tree by the RLC to ensure that they stack |
+ // + m_layerForVerticalScrollbar [OPTIONAL] // above scrolling content. |
// + m_layerForHorizontalScrollbar [OPTIONAL] |
// + m_layerForScrollCorner [OPTIONAL] |
// |
@@ -398,17 +399,18 @@ private: |
OwnPtr<GraphicsLayer> m_layerForVerticalScrollbar; |
OwnPtr<GraphicsLayer> m_layerForScrollCorner; |
- // This layer exists to simplify the reparenting of overflow control that is occasionally required |
- // to ensure that scrollbars appear above scrolling content. |
+ // This layer contains the scrollbar and scroll corner layers and clips them to the border box |
+ // bounds of our LayoutObject. It is usually added to m_graphicsLayer, but may be reparented by |
+ // GraphicsLayerTreeBuilder to ensure that scrollbars appear above scrolling content. |
OwnPtr<GraphicsLayer> m_overflowControlsHostLayer; |
// The reparented overflow controls sometimes need to be clipped by a non-ancestor. In just the same |
// way we need an ancestor clipping layer to clip this CLM's internal hierarchy, we add another layer |
- // to clip the overflow controls. It would be possible to make m_overflowControlsHostLayer be |
- // responsible for applying this clip, but that could require repositioning all of the overflow |
- // controls since the this clip may apply an offset. By using a separate layer, the overflow controls |
- // can remain ignorant of the layers above them and still work correctly. |
- OwnPtr<GraphicsLayer> m_overflowControlsClippingLayer; |
+ // to clip the overflow controls. We could combine this with m_overflowControlsHostLayer, but that |
+ // would require manually intersecting their clips, and shifting the overflow controls to compensate |
+ // for this clip's offset. By using a separate layer, the overflow controls can remain ignorant of |
+ // ancestor clipping. |
+ OwnPtr<GraphicsLayer> m_overflowControlsAncestorClippingLayer; |
// A squashing CLM has two possible squashing-related structures. |
// |