Index: third_party/WebKit/Source/core/paint/PaintLayer.cpp |
diff --git a/third_party/WebKit/Source/core/paint/PaintLayer.cpp b/third_party/WebKit/Source/core/paint/PaintLayer.cpp |
index 37f7d4a580967fc64ff1f5eee3e033bbee52aad5..c001d1c055d3172fd41b649ec6e717bd49b82f3d 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayer.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayer.cpp |
@@ -1133,7 +1133,7 @@ LayoutRect PaintLayer::transparencyClipBox(const PaintLayer* layer, const PaintL |
return result; |
} |
- LayoutRect clipRect = layer->fragmentsBoundingBox(rootLayer); |
+ LayoutRect clipRect = layer->shouldFragmentCompositedBounds(rootLayer) ? layer->fragmentsBoundingBox(rootLayer) : layer->physicalBoundingBox(rootLayer); |
expandClipRectForDescendantsAndReflection(clipRect, layer, rootLayer, transparencyBehavior, subPixelAccumulation, globalPaintFlags); |
clipRect = layer->mapLayoutRectForFilter(clipRect); |
clipRect.move(subPixelAccumulation); |
@@ -2164,6 +2164,9 @@ LayoutRect PaintLayer::boundingBoxForCompositingOverlapTest() const |
{ |
// Apply NeverIncludeTransformForAncestorLayer, because the geometry map in CompositingInputsUpdater will take care of applying the |
// transform of |this| (== the ancestorLayer argument to boundingBoxForCompositing). |
+ // TODO(trchen): Layer fragmentation is inhibited across compositing boundary. Should we |
+ // return the unfragmented bounds for overlap testing? Or perhaps assume fragmented layers |
+ // always overlap? |
return overlapBoundsIncludeChildren() ? boundingBoxForCompositing(this, NeverIncludeTransformForAncestorLayer) : fragmentsBoundingBox(this); |
} |