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 f1f683b47c1d4b69f10391d4f6de1780a9c81348..9cc7012f2aa6217d91b7d44529fcac6b93b04bcf 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayer.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayer.cpp |
@@ -2712,9 +2712,13 @@ void PaintLayer::filterNeedsPaintInvalidation() |
{ |
DeprecatedScheduleStyleRecalcDuringLayout marker(layoutObject()->document().lifecycle()); |
// It's possible for scheduleSVGFilterLayerUpdateHack to schedule a style recalc, which |
- // is a problem because this function can be called while performing layout. |
- // Presumably this represents an illegal data flow of layout or compositing |
- // information into the style system. |
+ // is a problem because this function can be called right before performing layout but |
+ // after style recalc. |
+ // |
+ // See LayoutView::layout() and the call to |
+ // invalidateSVGRootsWithRelativeLengthDescendents(). This violation is worked around |
+ // in FrameView::updateStyleAndLayoutIfNeededRecursive() by doing an extra style recalc |
+ // and layout in case it's needed. |
toElement(layoutObject()->node())->scheduleSVGFilterLayerUpdateHack(); |
} |