| Index: Source/core/rendering/RenderView.cpp
|
| diff --git a/Source/core/rendering/RenderView.cpp b/Source/core/rendering/RenderView.cpp
|
| index 105eadd08bcf1e2afe1a9e89aae42729dc9213e0..c40eaa5548c843e287a05f35fabb6b99f754db5d 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->shouldStopPartialLayout())
|
| + return;
|
| +
|
| if (hasRenderNamedFlowThreads())
|
| flowThreadController()->layoutRenderNamedFlowThreads();
|
| +
|
| #ifndef NDEBUG
|
| checkLayoutState(state);
|
| #endif
|
| @@ -214,6 +219,11 @@ bool RenderView::initializeLayoutState(LayoutState& state)
|
| // as detected in the previous step.
|
| void RenderView::layoutContentInAutoLogicalHeightRegions(const LayoutState& state)
|
| {
|
| + if (!m_frameView->shouldStopPartialLayout()) {
|
| + // disable partial layout for any two-pass layout algorithm.
|
| + m_frameView->resetPartialLayoutState();
|
| + }
|
| +
|
| // 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()) {
|
| @@ -283,6 +293,11 @@ void RenderView::layout()
|
| else
|
| layoutContent(state);
|
|
|
| + if (m_frameView->shouldStopPartialLayout()) {
|
| + m_layoutState = 0;
|
| + return;
|
| + }
|
| +
|
| #ifndef NDEBUG
|
| checkLayoutState(state);
|
| #endif
|
|
|