| Index: Source/core/rendering/RenderView.cpp
|
| diff --git a/Source/core/rendering/RenderView.cpp b/Source/core/rendering/RenderView.cpp
|
| index e1ab0f869ed6606ca262ca9650157a4c85e83ece..2d5b99f6f472c8081a71bf0f9b58daad976d56d2 100644
|
| --- a/Source/core/rendering/RenderView.cpp
|
| +++ b/Source/core/rendering/RenderView.cpp
|
| @@ -120,8 +120,13 @@ void RenderView::layoutContent(const LayoutState& state)
|
| ASSERT(needsLayout());
|
|
|
| RenderBlock::layout();
|
| +
|
| + if (m_frameView->partialLayout().isStopping())
|
| + return;
|
| +
|
| if (hasRenderNamedFlowThreads())
|
| flowThreadController()->layoutRenderNamedFlowThreads();
|
| +
|
| #ifndef NDEBUG
|
| checkLayoutState(state);
|
| #endif
|
| @@ -212,6 +217,11 @@ bool RenderView::initializeLayoutState(LayoutState& state)
|
| // as detected in the previous step.
|
| void RenderView::layoutContentInAutoLogicalHeightRegions(const LayoutState& state)
|
| {
|
| + if (!m_frameView->partialLayout().isStopping()) {
|
| + // Disable partial layout for any two-pass layout algorithm.
|
| + m_frameView->partialLayout().reset();
|
| + }
|
| +
|
| // We need to invalidate all the flows with auto-height regions if one such flow needs layout.
|
| // If none is found we do a layout a check back again afterwards.
|
| if (!flowThreadController()->updateFlowThreadsNeedingLayout()) {
|
| @@ -280,6 +290,11 @@ void RenderView::layout()
|
| else
|
| layoutContent(state);
|
|
|
| + if (m_frameView->partialLayout().isStopping()) {
|
| + m_layoutState = 0;
|
| + return;
|
| + }
|
| +
|
| #ifndef NDEBUG
|
| checkLayoutState(state);
|
| #endif
|
|
|