| Index: third_party/WebKit/Source/core/frame/FrameView.cpp
|
| diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| index 0b7aa3127efbe4b1be03c51ab652133b3bd765bc..f639d80f6d7e0c34cdf33d8a3891c8987b2a5f9e 100644
|
| --- a/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| +++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| @@ -3035,9 +3035,22 @@
|
| for (const auto& frameView : frameViews)
|
| frameView->updateStyleAndLayoutIfNeededRecursiveInternal();
|
|
|
| + checkDoesNotNeedLayout();
|
| +
|
| + // When SVG filters are invalidated using
|
| + // Document::scheduleSVGFilterLayerUpdateHack() they may trigger an extra
|
| + // style recalc. See PaintLayer::filterNeedsPaintInvalidation().
|
| + if (m_frame->document()->hasSVGFilterElementsRequiringLayerUpdate()) {
|
| + m_frame->document()->updateStyleAndLayoutTree();
|
| +
|
| + if (needsLayout())
|
| + layout();
|
| + }
|
| +
|
| // These asserts ensure that parent frames are clean, when child frames
|
| // finished updating layout and style.
|
| checkDoesNotNeedLayout();
|
| + ASSERT(!m_frame->document()->hasSVGFilterElementsRequiringLayerUpdate());
|
| #if ENABLE(ASSERT)
|
| m_frame->document()->layoutView()->assertLaidOut();
|
| #endif
|
|
|