Index: Source/core/frame/FrameView.cpp |
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
index b2cb7359a68f53b55c55af84554c523b8af8c1e1..c75a2a0e71a148c9636d04c76ee43f254d3523be 100644 |
--- a/Source/core/frame/FrameView.cpp |
+++ b/Source/core/frame/FrameView.cpp |
@@ -107,11 +107,12 @@ static RenderLayer::UpdateLayerPositionsFlags updateLayerPositionFlags(RenderLay |
class FrameViewLayoutStateMaintainer { |
WTF_MAKE_NONCOPYABLE(FrameViewLayoutStateMaintainer); |
public: |
- FrameViewLayoutStateMaintainer(RenderObject& root) |
+ FrameViewLayoutStateMaintainer(RenderObject& root, bool inSubtreeLayout) |
: m_view(*root.view()) |
- , m_disabled(m_view.frameView()->isSubtreeLayout() && m_view.shouldDisableLayoutStateForSubtree(root)) |
+ , m_inSubtreeLayout(inSubtreeLayout) |
+ , m_disabled(inSubtreeLayout && m_view.shouldDisableLayoutStateForSubtree(root)) |
{ |
- if (m_view.frameView()->isSubtreeLayout()) |
+ if (m_inSubtreeLayout) |
m_view.pushLayoutState(root); |
if (m_disabled) |
m_view.disableLayoutState(); |
@@ -121,11 +122,12 @@ public: |
{ |
if (m_disabled) |
m_view.enableLayoutState(); |
- if (m_view.frameView()->isSubtreeLayout()) |
+ if (m_inSubtreeLayout) |
m_view.popLayoutState(); |
} |
private: |
RenderView& m_view; |
+ bool m_inSubtreeLayout; |
bool m_disabled; |
}; |
@@ -797,7 +799,7 @@ void FrameView::performLayout(RenderObject* rootForThisLayout, bool inSubtreeLay |
// FIXME: The 300 other lines in layout() probably belong in other helper functions |
// so that a single human could understand what layout() is actually doing. |
- FrameViewLayoutStateMaintainer statePusher(*rootForThisLayout); |
+ FrameViewLayoutStateMaintainer statePusher(*rootForThisLayout, inSubtreeLayout); |
forceLayoutParentViewIfNeeded(); |
{ |