Index: Source/core/frame/FrameView.cpp |
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
index 8e1a6b3ba751aeb483958baf9e3e385fb633ff2b..95949a17ce21191ed4eea0afd6e8b3e0e780bee1 100644 |
--- a/Source/core/frame/FrameView.cpp |
+++ b/Source/core/frame/FrameView.cpp |
@@ -105,33 +105,6 @@ static RenderLayer::UpdateLayerPositionsFlags updateLayerPositionFlags(RenderLay |
return flags; |
} |
-Pagination::Mode paginationModeForRenderStyle(RenderStyle* style) |
-{ |
- EOverflow overflow = style->overflowY(); |
- if (overflow != OPAGEDX && overflow != OPAGEDY) |
- return Pagination::Unpaginated; |
- |
- bool isHorizontalWritingMode = style->isHorizontalWritingMode(); |
- TextDirection textDirection = style->direction(); |
- WritingMode writingMode = style->writingMode(); |
- |
- // paged-x always corresponds to LeftToRightPaginated or RightToLeftPaginated. If the WritingMode |
- // is horizontal, then we use TextDirection to choose between those options. If the WritingMode |
- // is vertical, then the direction of the verticality dictates the choice. |
- if (overflow == OPAGEDX) { |
- if ((isHorizontalWritingMode && textDirection == LTR) || writingMode == LeftToRightWritingMode) |
- return Pagination::LeftToRightPaginated; |
- return Pagination::RightToLeftPaginated; |
- } |
- |
- // paged-y always corresponds to TopToBottomPaginated or BottomToTopPaginated. If the WritingMode |
- // is horizontal, then the direction of the horizontality dictates the choice. If the WritingMode |
- // is vertical, then we use TextDirection to choose between those options. |
- if (writingMode == TopToBottomWritingMode || (!isHorizontalWritingMode && textDirection == LTR)) |
- return Pagination::TopToBottomPaginated; |
- return Pagination::BottomToTopPaginated; |
-} |
- |
FrameView::FrameView(Frame* frame) |
: m_frame(frame) |
, m_canHaveScrollbars(true) |
@@ -551,41 +524,13 @@ void FrameView::applyOverflowToViewportAndSetRenderer(RenderObject* o, Scrollbar |
vMode = ScrollbarAuto; |
break; |
default: |
- // Don't set it at all. Values of OPAGEDX and OPAGEDY are handled by applyPaginationToViewPort(). |
+ // Don't set it at all. |
; |
} |
m_viewportRenderer = o; |
} |
-void FrameView::applyPaginationToViewport() |
-{ |
- Document* document = m_frame->document(); |
- Node* documentElement = document->documentElement(); |
- RenderObject* documentRenderer = documentElement ? documentElement->renderer() : 0; |
- RenderObject* documentOrBodyRenderer = documentRenderer; |
- Node* body = document->body(); |
- if (body && body->renderer()) { |
- if (body->hasTagName(bodyTag)) |
- documentOrBodyRenderer = documentRenderer->style()->overflowX() == OVISIBLE && documentElement->hasTagName(htmlTag) ? body->renderer() : documentRenderer; |
- } |
- |
- Pagination pagination; |
- |
- if (!documentOrBodyRenderer) { |
- setPagination(pagination); |
- return; |
- } |
- |
- EOverflow overflowY = documentOrBodyRenderer->style()->overflowY(); |
- if (overflowY == OPAGEDX || overflowY == OPAGEDY) { |
- pagination.mode = WebCore::paginationModeForRenderStyle(documentOrBodyRenderer->style()); |
- pagination.gap = static_cast<unsigned>(documentOrBodyRenderer->style()->columnGap()); |
- } |
- |
- setPagination(pagination); |
-} |
- |
void FrameView::calculateScrollbarModesForLayoutAndSetViewportRenderer(ScrollbarMode& hMode, ScrollbarMode& vMode, ScrollbarModesCalculationStrategy strategy) |
{ |
m_viewportRenderer = 0; |
@@ -607,22 +552,15 @@ void FrameView::calculateScrollbarModesForLayoutAndSetViewportRenderer(Scrollbar |
if (!isSubtreeLayout()) { |
Document* document = m_frame->document(); |
- Node* documentElement = document->documentElement(); |
- RenderObject* rootRenderer = documentElement ? documentElement->renderer() : 0; |
Node* body = document->body(); |
- if (body && body->renderer()) { |
- if (body->hasTagName(framesetTag)) { |
- vMode = ScrollbarAlwaysOff; |
- hMode = ScrollbarAlwaysOff; |
- } else if (body->hasTagName(bodyTag)) { |
- // It's sufficient to just check the X overflow, |
- // since it's illegal to have visible in only one direction. |
- RenderObject* o = rootRenderer->style()->overflowX() == OVISIBLE && document->documentElement()->hasTagName(htmlTag) ? body->renderer() : rootRenderer; |
- if (o->style()) |
- applyOverflowToViewportAndSetRenderer(o, hMode, vMode); |
+ if (body && body->renderer() && body->hasTagName(framesetTag)) { |
+ vMode = ScrollbarAlwaysOff; |
+ hMode = ScrollbarAlwaysOff; |
+ } else if (Element* viewportElement = document->viewportDefiningElement()) { |
+ if (RenderObject* viewportRenderer = viewportElement->renderer()) { |
+ if (viewportRenderer->style()) |
+ applyOverflowToViewportAndSetRenderer(viewportRenderer, hMode, vMode); |
} |
- } else if (rootRenderer) { |
- applyOverflowToViewportAndSetRenderer(rootRenderer, hMode, vMode); |
} |
} |
} |
@@ -804,10 +742,6 @@ void FrameView::performPreLayoutTasks() |
document->evaluateMediaQueryList(); |
} |
- // If there is any pagination to apply, it will affect the RenderView's style, so we should |
- // take care of that now. |
- applyPaginationToViewport(); |
- |
// Always ensure our style info is up-to-date. This can happen in situations where |
// the layout beats any sort of style recalc update that needs to occur. |
TemporaryChange<bool> changeDoingPreLayoutStyleUpdate(m_doingPreLayoutStyleUpdate, true); |
@@ -2260,15 +2194,6 @@ void FrameView::updateOverflowStatus(bool horizontalOverflow, bool verticalOverf |
} |
-void FrameView::setPagination(const Pagination& pagination) |
-{ |
- if (m_pagination == pagination) |
- return; |
- |
- m_pagination = pagination; |
- m_frame->document()->styleResolverChanged(RecalcStyleDeferred); |
-} |
- |
IntRect FrameView::windowClipRect(bool clipToContents) const |
{ |
ASSERT(m_frame->view() == this); |