Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index 1e5511b19742d4e9bd08e8c7fadc492708fdeeaa..c83e8db093200e05c2121f8c2ec452d93dd3b75e 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -3772,6 +3772,21 @@ void RenderLayer::computeSelfHitTestRects(LayerHitTestRects& rects) const |
} |
} |
+void RenderLayer::setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants() |
+{ |
+ // FIXME: For objects whose invalidateTreeIfNeeded won't invalidate themselves, |
+ // we still need to invalidate now. crbug.com/394133. |
+ if (renderer()->canSelfInvalidateDuringTreeInvalidation()) |
+ renderer()->setShouldDoFullPaintInvalidation(true); |
+ else |
+ renderer()->paintInvalidationForWholeRenderer(); |
+ |
+ for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) { |
+ if (child->compositingState() != PaintsIntoOwnBacking && child->compositingState() != PaintsIntoGroupedBacking) |
+ child->setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants(); |
+ } |
+} |
+ |
DisableCompositingQueryAsserts::DisableCompositingQueryAsserts() |
: m_disabler(gCompositingQueryMode, CompositingQueriesAreAllowed) { } |