Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Unified Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2062693002: Force FrameView::checkDoesNotNeedLayout() not inlined in FrameView.cpp (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 12f7a0ef121a622b79fed3e31feb5378abe4f76a..ab8f86fc55e8d846f5d136320978ddd47213644a 100644
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
@@ -1879,7 +1879,7 @@ bool FrameView::needsLayout() const
|| isSubtreeLayout();
}
-void FrameView::checkDoesNotNeedLayout() const
+NOINLINE void FrameView::checkDoesNotNeedLayout() const
{
CHECK(!layoutPending());
CHECK(layoutViewItem().isNull() || !layoutViewItem().needsLayout());
@@ -2639,6 +2639,8 @@ void FrameView::updateStyleAndLayoutIfNeededRecursiveInternal()
toPluginView(child.get())->updateAllLifecyclePhases();
}
+ checkDoesNotNeedLayout();
+
// FIXME: Calling layout() shouldn't trigger script execution or have any
// observable effects on the frame tree but we're not quite there yet.
HeapVector<Member<FrameView>> frameViews;
@@ -2652,6 +2654,8 @@ void FrameView::updateStyleAndLayoutIfNeededRecursiveInternal()
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()) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698