| Index: Source/core/rendering/RenderView.cpp
|
| diff --git a/Source/core/rendering/RenderView.cpp b/Source/core/rendering/RenderView.cpp
|
| index b71d4fee5c8a8aa4290258d89dce063b7603cff8..7789e5543aae5e46505562d8a2719abe336443a3 100644
|
| --- a/Source/core/rendering/RenderView.cpp
|
| +++ b/Source/core/rendering/RenderView.cpp
|
| @@ -128,8 +128,13 @@ void RenderView::layoutContent(const LayoutState& state)
|
| ASSERT(needsLayout());
|
|
|
| RenderBlock::layout();
|
| +
|
| + if (m_frameView->canStopPartialLayout())
|
| + return;
|
| +
|
| if (hasRenderNamedFlowThreads())
|
| flowThreadController()->layoutRenderNamedFlowThreads();
|
| +
|
| #ifndef NDEBUG
|
| checkLayoutState(state);
|
| #endif
|
| @@ -222,6 +227,11 @@ bool RenderView::initializeLayoutState(LayoutState& state)
|
| // as detected in the previous step.
|
| void RenderView::layoutContentInAutoLogicalHeightRegions(const LayoutState& state)
|
| {
|
| + if (!m_frameView->canStopPartialLayout()) {
|
| + // 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()) {
|
| @@ -289,6 +299,11 @@ void RenderView::layout()
|
| else
|
| layoutContent(state);
|
|
|
| + if (m_frameView->canStopPartialLayout()) {
|
| + m_layoutState = 0;
|
| + return;
|
| + }
|
| +
|
| #ifndef NDEBUG
|
| checkLayoutState(state);
|
| #endif
|
|
|