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

Unified Diff: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h

Issue 2194273002: Fix border radius on composited children. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Super hacky patch Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 53895c4fdd16476b71ea505f4b83d705bb64bc50..bf1e1178266799924265eaa5aac043a65f725b51 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h
@@ -265,7 +265,7 @@ private:
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, bool needsScrollCornerLayer, bool needsAncestorClip);
bool updateForegroundLayer(bool needsForegroundLayer);
@@ -330,6 +330,10 @@ private:
// 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 if |m_owningLayer|'s compositing ancestor is not a descendant (inclusive) of the
+ // clipping container for |m_owningLayer| and that clipping container has border radius.
+ bool owningLayerMaskedByLayerNotAboveCompositedAncestor(const PaintLayer* scrollParent);
+
const PaintLayer* scrollParent();
@@ -373,6 +377,7 @@ private:
// So we create an ancestor clipping layer for B, [+], which ensures that B is clipped
// as if it had been A's descendant.
std::unique_ptr<GraphicsLayer> m_ancestorClippingLayer; // Only used if we are clipped by an ancestor which is not a stacking context.
+ std::unique_ptr<GraphicsLayer> m_ancestorClippingMaskLayer; // Only used is there is an m_ancestorClippingLayer that also needs to apply a border radius mask.
std::unique_ptr<GraphicsLayer> m_graphicsLayer;
std::unique_ptr<GraphicsLayer> m_childContainmentLayer; // Only used if we have clipping on a stacking context with compositing children.
std::unique_ptr<GraphicsLayer> m_childTransformLayer; // Only used if we have perspective.

Powered by Google App Engine
This is Rietveld 408576698