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 0893dc53e4cc147e85245626992b4b954d0a76ba..03faeedc28f2300eb665ac90d6f33873b43e2037 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayer.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayer.cpp |
@@ -2692,11 +2692,15 @@ void PaintLayer::markAncestorChainForNeedsRepaint() |
// Need to access compositingState(). We've ensured correct flag setting when compositingState() changes. |
DisableCompositingQueryAsserts disabler; |
- if (compositingState() != NotComposited) |
- return; |
- |
PaintLayer* layer = this; |
while (true) { |
+ if (layer->compositingState() == PaintsIntoOwnBacking) |
+ return; |
+ if (CompositedLayerMapping* groupedMapping = layer->groupedMapping()) { |
+ groupedMapping->owningLayer().setNeedsRepaint(); |
+ return; |
+ } |
+ |
PaintLayer* container = layer->parent(); |
if (!container) { |
LayoutObject* owner = layer->layoutObject()->frame()->ownerLayoutObject(); |
@@ -2709,8 +2713,6 @@ void PaintLayer::markAncestorChainForNeedsRepaint() |
break; |
container->m_needsRepaint = true; |
} |
- if (container->compositingState() != NotComposited) |
- break; |
layer = container; |
} |
} |