Index: Source/core/layout/svg/LayoutSVGInline.cpp |
diff --git a/Source/core/layout/svg/LayoutSVGInline.cpp b/Source/core/layout/svg/LayoutSVGInline.cpp |
index c8b0aad920fff437ccc51ec6a7f74fbdd965ad24..b6d42c03e983955257c677ed3426c67a79af388c 100644 |
--- a/Source/core/layout/svg/LayoutSVGInline.cpp |
+++ b/Source/core/layout/svg/LayoutSVGInline.cpp |
@@ -150,4 +150,23 @@ void LayoutSVGInline::removeChild(LayoutObject* child) |
textLayoutObject->subtreeChildWasRemoved(affectedAttributes); |
} |
+void LayoutSVGInline::invalidateTreeIfNeeded(PaintInvalidationState& paintInvalidationState) |
+{ |
+ ASSERT(!needsLayout()); |
+ |
+ if (!shouldCheckForPaintInvalidation(paintInvalidationState)) |
+ return; |
+ |
+ PaintInvalidationReason reason = invalidatePaintIfNeeded(paintInvalidationState, paintInvalidationState.paintInvalidationContainer()); |
+ clearPaintInvalidationState(paintInvalidationState); |
+ |
+ if (reason == PaintInvalidationDelayedFull) |
+ paintInvalidationState.pushDelayedPaintInvalidationTarget(*this); |
+ |
+ PaintInvalidationState childTreeWalkState(paintInvalidationState, *this, paintInvalidationState.paintInvalidationContainer()); |
+ if (reason == PaintInvalidationSVGResourceChange) |
+ childTreeWalkState.setForceSubtreeInvalidationWithinContainer(); |
+ invalidatePaintOfSubtreesIfNeeded(childTreeWalkState); |
+} |
+ |
} |