| Index: Source/core/rendering/RenderView.cpp | 
| diff --git a/Source/core/rendering/RenderView.cpp b/Source/core/rendering/RenderView.cpp | 
| index feeeccb7e38f565502ad9553602c7424ab7411e0..c4b5bde40859b56b11798c98a54fe6b5d9dea358 100644 | 
| --- a/Source/core/rendering/RenderView.cpp | 
| +++ b/Source/core/rendering/RenderView.cpp | 
| @@ -31,11 +31,9 @@ | 
| #include "core/page/Page.h" | 
| #include "core/rendering/ColumnInfo.h" | 
| #include "core/rendering/CompositedLayerMapping.h" | 
| -#include "core/rendering/FlowThreadController.h" | 
| #include "core/rendering/GraphicsContextAnnotator.h" | 
| #include "core/rendering/HitTestResult.h" | 
| #include "core/rendering/LayoutRectRecorder.h" | 
| -#include "core/rendering/RenderFlowThread.h" | 
| #include "core/rendering/RenderGeometryMap.h" | 
| #include "core/rendering/RenderLayer.h" | 
| #include "core/rendering/RenderLayerCompositor.h" | 
| @@ -173,9 +171,6 @@ void RenderView::layoutContent(const LayoutState& state) | 
| if (m_frameView->partialLayout().isStopping()) | 
| return; | 
|  | 
| -    if (hasRenderNamedFlowThreads()) | 
| -        flowThreadController()->layoutRenderNamedFlowThreads(); | 
| - | 
| #ifndef NDEBUG | 
| checkLayoutState(state); | 
| #endif | 
| @@ -198,22 +193,8 @@ static RenderBox* enclosingSeamlessRenderer(const Document& doc) | 
| return ownerElement->renderBox(); | 
| } | 
|  | 
| -void RenderView::addChild(RenderObject* newChild, RenderObject* beforeChild) | 
| -{ | 
| -    // Seamless iframes are considered part of an enclosing render flow thread from the parent document. This is necessary for them to look | 
| -    // up regions in the parent document during layout. | 
| -    if (newChild && !newChild->isRenderFlowThread()) { | 
| -        RenderBox* seamlessBox = enclosingSeamlessRenderer(document()); | 
| -        if (seamlessBox && seamlessBox->flowThreadContainingBlock()) | 
| -            newChild->setFlowThreadState(seamlessBox->flowThreadState()); | 
| -    } | 
| -    RenderBlock::addChild(newChild, beforeChild); | 
| -} | 
| - | 
| bool RenderView::initializeLayoutState(LayoutState& state) | 
| { | 
| -    bool isSeamlessAncestorInFlowThread = false; | 
| - | 
| // FIXME: May be better to push a clip and avoid issuing offscreen repaints. | 
| state.m_clipped = false; | 
|  | 
| @@ -239,62 +220,11 @@ bool RenderView::initializeLayoutState(LayoutState& state) | 
|  | 
| LayoutSize offsetDelta = seamlessLayoutState->m_pageOffset - iFrameOffset; | 
| state.m_pageOffset = offsetDelta; | 
| - | 
| -        // Set the current render flow thread to point to our ancestor. This will allow the seamless document to locate the correct | 
| -        // regions when doing a layout. | 
| -        if (seamlessAncestor->flowThreadContainingBlock()) { | 
| -            flowThreadController()->setCurrentRenderFlowThread(seamlessAncestor->view()->flowThreadController()->currentRenderFlowThread()); | 
| -            isSeamlessAncestorInFlowThread = true; | 
| -        } | 
| } | 
|  | 
| // FIXME: We need to make line grids and exclusions work with seamless iframes as well here. Basically all layout state information needs | 
| // to propagate here and not just pagination information. | 
| -    return isSeamlessAncestorInFlowThread; | 
| -} | 
| - | 
| -// The algorithm below assumes this is a full layout. In case there are previously computed values for regions, supplemental steps are taken | 
| -// to ensure the results are the same as those obtained from a full layout (i.e. the auto-height regions from all the flows are marked as needing | 
| -// layout). | 
| -// 1. The flows are laid out from the outer flow to the inner flow. This successfully computes the outer non-auto-height regions size so the | 
| -// inner flows have the necessary information to correctly fragment the content. | 
| -// 2. The flows are laid out from the inner flow to the outer flow. After an inner flow is laid out it goes into the constrained layout phase | 
| -// and marks the auto-height regions they need layout. This means the outer flows will relayout if they depend on regions with auto-height regions | 
| -// belonging to inner flows. This step will correctly set the computedAutoHeight for the auto-height regions. It's possible for non-auto-height | 
| -// regions to relayout if they depend on auto-height regions. This will invalidate the inner flow threads and mark them as needing layout. | 
| -// 3. The last step is to do one last layout if there are pathological dependencies between non-auto-height regions and auto-height regions | 
| -// 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()) { | 
| -        // Do a first layout of the content. In some cases more layouts are not needed (e.g. only flows with non-auto-height regions have changed). | 
| -        layoutContent(state); | 
| - | 
| -        // If we find no named flow needing a two step layout after the first layout, exit early. | 
| -        // Otherwise, initiate the two step layout algorithm and recompute all the flows. | 
| -        if (!flowThreadController()->updateFlowThreadsNeedingTwoStepLayout()) | 
| -            return; | 
| -    } | 
| - | 
| -    // Layout to recompute all the named flows with auto-height regions. | 
| -    layoutContent(state); | 
| - | 
| -    // Propagate the computed auto-height values upwards. | 
| -    // Non-auto-height regions may invalidate the flow thread because they depended on auto-height regions, but that's ok. | 
| -    flowThreadController()->updateFlowThreadsIntoConstrainedPhase(); | 
| - | 
| -    // Do one last layout that should update the auto-height regions found in the main flow | 
| -    // and solve pathological dependencies between regions (e.g. a non-auto-height region depending | 
| -    // on an auto-height one). | 
| -    if (needsLayout()) | 
| -        layoutContent(state); | 
| +    return false; | 
| } | 
|  | 
| void RenderView::layout() | 
| @@ -331,15 +261,12 @@ void RenderView::layout() | 
| return; | 
|  | 
| LayoutState state; | 
| -    bool isSeamlessAncestorInFlowThread = initializeLayoutState(state); | 
| +    initializeLayoutState(state); | 
|  | 
| m_pageLogicalHeightChanged = false; | 
| m_layoutState = &state; | 
|  | 
| -    if (checkTwoPassLayoutForAutoHeightRegions()) | 
| -        layoutContentInAutoLogicalHeightRegions(state); | 
| -    else | 
| -        layoutContent(state); | 
| +    layoutContent(state); | 
|  | 
| if (m_frameView->partialLayout().isStopping()) { | 
| m_layoutState = 0; | 
| @@ -351,9 +278,6 @@ void RenderView::layout() | 
| #endif | 
| m_layoutState = 0; | 
| clearNeedsLayout(); | 
| - | 
| -    if (isSeamlessAncestorInFlowThread) | 
| -        flowThreadController()->setCurrentRenderFlowThread(0); | 
| } | 
|  | 
| void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const | 
| @@ -1031,7 +955,6 @@ void RenderView::pushLayoutState(RenderObject* root) | 
| ASSERT(m_layoutStateDisableCount == 0); | 
| ASSERT(m_layoutState == 0); | 
|  | 
| -    pushLayoutStateForCurrentFlowThread(root); | 
| m_layoutState = new LayoutState(root); | 
| } | 
|  | 
| @@ -1083,55 +1006,6 @@ void RenderView::setIsInWindow(bool isInWindow) | 
| m_compositor->setIsInWindow(isInWindow); | 
| } | 
|  | 
| -void RenderView::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) | 
| -{ | 
| -    RenderBlock::styleDidChange(diff, oldStyle); | 
| -    if (hasRenderNamedFlowThreads()) | 
| -        flowThreadController()->styleDidChange(); | 
| -} | 
| - | 
| -bool RenderView::hasRenderNamedFlowThreads() const | 
| -{ | 
| -    return m_flowThreadController && m_flowThreadController->hasRenderNamedFlowThreads(); | 
| -} | 
| - | 
| -bool RenderView::checkTwoPassLayoutForAutoHeightRegions() const | 
| -{ | 
| -    return hasRenderNamedFlowThreads() && m_flowThreadController->hasFlowThreadsWithAutoLogicalHeightRegions(); | 
| -} | 
| - | 
| -FlowThreadController* RenderView::flowThreadController() | 
| -{ | 
| -    if (!m_flowThreadController) | 
| -        m_flowThreadController = FlowThreadController::create(this); | 
| - | 
| -    return m_flowThreadController.get(); | 
| -} | 
| - | 
| -void RenderView::pushLayoutStateForCurrentFlowThread(const RenderObject* object) | 
| -{ | 
| -    if (!m_flowThreadController) | 
| -        return; | 
| - | 
| -    RenderFlowThread* currentFlowThread = m_flowThreadController->currentRenderFlowThread(); | 
| -    if (!currentFlowThread) | 
| -        return; | 
| - | 
| -    currentFlowThread->pushFlowThreadLayoutState(object); | 
| -} | 
| - | 
| -void RenderView::popLayoutStateForCurrentFlowThread() | 
| -{ | 
| -    if (!m_flowThreadController) | 
| -        return; | 
| - | 
| -    RenderFlowThread* currentFlowThread = m_flowThreadController->currentRenderFlowThread(); | 
| -    if (!currentFlowThread) | 
| -        return; | 
| - | 
| -    currentFlowThread->popFlowThreadLayoutState(); | 
| -} | 
| - | 
| IntervalArena* RenderView::intervalArena() | 
| { | 
| if (!m_intervalArena) | 
|  |