Chromium Code Reviews| 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 c83206a1dda69d6eea48bdde6783e8da572f2744..c8cf7e0657ae94e07510b34769535db9ee0e4461 100644 |
| --- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h |
| +++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h |
| @@ -375,6 +375,9 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient { |
| void updateInternalHierarchy(); |
| void updatePaintingPhases(); |
| bool updateClippingLayers(bool needsAncestorClip, bool needsDescendantClip); |
| + bool updateClippingLayers(bool needsAncestorClip, |
| + bool needsAncestorClippingMask, |
| + bool needsDescendantClip); |
| bool updateChildTransformLayer(bool needsChildTransformLayer); |
| bool updateOverflowControlsLayers(bool needsHorizontalScrollbarLayer, |
| bool needsVerticalScrollbarLayer, |
| @@ -468,10 +471,16 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient { |
| const GraphicsLayerPaintInfo&, |
| const Vector<GraphicsLayerPaintInfo>& layers); |
| - // Return true if |m_owningLayer|'s compositing ancestor is not a descendant |
| - // (inclusive) of the clipping container for |m_owningLayer|. |
| - bool owningLayerClippedByLayerNotAboveCompositedAncestor( |
| - const PaintLayer* scrollParent); |
| + // Return true in |owningLayerIsClipped| iff |m_owningLayer|'s compositing |
| + // ancestor is not a descendant (inclusive) of the clipping container for |
| + // |m_owningLayer|. Return true in |owningLayerIsMasked| iff |
| + // |owningLayerIsClipped| is true and |m_owningLayer|'s compositing ancestor |
| + // is not a descendant (inclusive) of a container that applies a mask for |
| + // |m_owningLayer|. |
| + void owningLayerClippedOrMaskedByLayerNotAboveCompositedAncestor( |
| + const PaintLayer* scrollParent, |
| + bool& owningLayerIsClipped, |
| + bool& owningLayerIsMasked); |
|
Stephen Chennney
2016/11/08 21:42:51
Not sure if it's a good idea to set two things wit
|
| const PaintLayer* scrollParent(); |
| @@ -522,6 +531,11 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient { |
| // Only used if we are clipped by an ancestor which is not a stacking context. |
| std::unique_ptr<GraphicsLayer> m_ancestorClippingLayer; |
| + |
| + // Only used is there is an m_ancestorClippingLayer that also needs to apply |
| + // a clipping mask (for CSS clips or border radius). |
| + std::unique_ptr<GraphicsLayer> m_ancestorClippingMaskLayer; |
| + |
| std::unique_ptr<GraphicsLayer> m_graphicsLayer; |
| // Only used if we have clipping on a stacking context with compositing |