| Index: third_party/WebKit/Source/core/frame/FrameView.cpp
|
| diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| index 11c41db3be93caf59a8d4ff6bf59eb1944a034a0..fe753a86be634ddff099998f25b59c9f800ca524 100644
|
| --- a/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| +++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| @@ -782,73 +782,6 @@ void FrameView::AdjustViewSizeAndLayout() {
|
| }
|
| }
|
|
|
| -void FrameView::CalculateScrollbarModesFromOverflowStyle(
|
| - const ComputedStyle* style,
|
| - ScrollbarMode& h_mode,
|
| - ScrollbarMode& v_mode) const {
|
| - h_mode = v_mode = kScrollbarAuto;
|
| -
|
| - EOverflow overflow_x = style->OverflowX();
|
| - EOverflow overflow_y = style->OverflowY();
|
| -
|
| - if (!ShouldIgnoreOverflowHidden()) {
|
| - if (overflow_x == EOverflow::kHidden)
|
| - h_mode = kScrollbarAlwaysOff;
|
| - if (overflow_y == EOverflow::kHidden)
|
| - v_mode = kScrollbarAlwaysOff;
|
| - }
|
| -
|
| - if (overflow_x == EOverflow::kScroll)
|
| - h_mode = kScrollbarAlwaysOn;
|
| - if (overflow_y == EOverflow::kScroll)
|
| - v_mode = kScrollbarAlwaysOn;
|
| -}
|
| -
|
| -void FrameView::CalculateScrollbarModes(ScrollbarMode& h_mode,
|
| - ScrollbarMode& v_mode) const {
|
| -#define RETURN_SCROLLBAR_MODE(mode) \
|
| - { \
|
| - h_mode = v_mode = mode; \
|
| - return; \
|
| - }
|
| -
|
| - // Setting scrolling="no" on an iframe element disables scrolling.
|
| - if (frame_->Owner() &&
|
| - frame_->Owner()->ScrollingMode() == kScrollbarAlwaysOff)
|
| - RETURN_SCROLLBAR_MODE(kScrollbarAlwaysOff);
|
| -
|
| - // Framesets can't scroll.
|
| - Node* body = frame_->GetDocument()->body();
|
| - if (isHTMLFrameSetElement(body) && body->GetLayoutObject())
|
| - RETURN_SCROLLBAR_MODE(kScrollbarAlwaysOff);
|
| -
|
| - // Scrollbars can be disabled by FrameView::setCanHaveScrollbars.
|
| - if (!can_have_scrollbars_)
|
| - RETURN_SCROLLBAR_MODE(kScrollbarAlwaysOff);
|
| -
|
| - // This will be the LayoutObject for either the body element or the html
|
| - // element (see Document::viewportDefiningElement).
|
| - LayoutObject* viewport = ViewportLayoutObject();
|
| - if (!viewport || !viewport->Style())
|
| - RETURN_SCROLLBAR_MODE(kScrollbarAuto);
|
| -
|
| - if (viewport->IsSVGRoot()) {
|
| - // Don't allow overflow to affect <img> and css backgrounds
|
| - if (ToLayoutSVGRoot(viewport)->IsEmbeddedThroughSVGImage())
|
| - RETURN_SCROLLBAR_MODE(kScrollbarAuto);
|
| -
|
| - // FIXME: evaluate if we can allow overflow for these cases too.
|
| - // Overflow is always hidden when stand-alone SVG documents are embedded.
|
| - if (ToLayoutSVGRoot(viewport)
|
| - ->IsEmbeddedThroughFrameContainingSVGDocument())
|
| - RETURN_SCROLLBAR_MODE(kScrollbarAlwaysOff);
|
| - }
|
| -
|
| - CalculateScrollbarModesFromOverflowStyle(viewport->Style(), h_mode, v_mode);
|
| -
|
| -#undef RETURN_SCROLLBAR_MODE
|
| -}
|
| -
|
| void FrameView::UpdateAcceleratedCompositingSettings() {
|
| if (LayoutViewItem layout_view_item = this->GetLayoutViewItem())
|
| layout_view_item.Compositor()->UpdateAcceleratedCompositingSettings();
|
| @@ -1271,7 +1204,7 @@ void FrameView::UpdateLayout() {
|
|
|
| ScrollbarMode h_mode;
|
| ScrollbarMode v_mode;
|
| - CalculateScrollbarModes(h_mode, v_mode);
|
| + GetLayoutView()->CalculateScrollbarModes(h_mode, v_mode);
|
|
|
| // Now set our scrollbar state for the layout.
|
| ScrollbarMode current_h_mode = HorizontalScrollbarMode();
|
| @@ -2777,7 +2710,7 @@ FrameView::ScrollingReasons FrameView::GetScrollingReasons() const {
|
| // Cover #3 and #4.
|
| ScrollbarMode horizontal_mode;
|
| ScrollbarMode vertical_mode;
|
| - CalculateScrollbarModes(horizontal_mode, vertical_mode);
|
| + GetLayoutView()->CalculateScrollbarModes(horizontal_mode, vertical_mode);
|
| if (horizontal_mode == kScrollbarAlwaysOff &&
|
| vertical_mode == kScrollbarAlwaysOff)
|
| return kNotScrollableExplicitlyDisabled;
|
|
|