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 50137729160c42130d6a2ec3d239691f308eca76..5068c0edcd802112adf2216c77a03f1645863b31 100644 |
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp |
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp |
@@ -819,8 +819,13 @@ void FrameView::performPreLayoutTasks() |
m_viewportScrollableArea = RootFrameViewport::create(visualViewport, *layoutViewport); |
} |
- if (!m_scrollAnchor.hasScroller()) |
- m_scrollAnchor.setScroller(m_viewportScrollableArea ? m_viewportScrollableArea : this); |
+ if (!m_scrollAnchor.hasScroller()) { |
+ ScrollableArea* scroller = m_viewportScrollableArea; |
+ if (!scroller) |
+ scroller = this; |
+ |
+ m_scrollAnchor.setScroller(scroller); |
+ } |
if (shouldPerformScrollAnchoring()) |
m_scrollAnchor.save(); |
@@ -4131,6 +4136,11 @@ ScrollableArea* FrameView::layoutViewportScrollableArea() |
return layoutViewItem.isNull() ? nullptr : layoutViewItem.getScrollableArea(); |
} |
+RootFrameViewport* FrameView::getRootFrameViewport() |
+{ |
+ return m_viewportScrollableArea.get(); |
+} |
+ |
LayoutObject* FrameView::viewportLayoutObject() const |
{ |
if (Document* document = frame().document()) { |