| 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 687b58d8451b0789bb81f5d439dc29cfbdc80004..ee1ca3f5c889c21117b7941fad2247a4800cc04e 100644
|
| --- a/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| +++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| @@ -828,6 +828,14 @@ void FrameView::performPreLayoutTasks()
|
| m_scrollAnchor.save();
|
| }
|
|
|
| +bool FrameView::shouldPerformScrollAnchoring() const
|
| +{
|
| + return RuntimeEnabledFeatures::scrollAnchoringEnabled()
|
| + && m_frame->settings() && !m_frame->settings()->rootLayerScrolls()
|
| + && m_scrollAnchor.hasScroller()
|
| + && layoutBox()->style()->overflowAnchor() != AnchorNone;
|
| +}
|
| +
|
| static inline void layoutFromRootObject(LayoutObject& root)
|
| {
|
| LayoutState layoutState(root);
|
| @@ -3655,7 +3663,7 @@ void FrameView::adjustScrollPositionFromUpdateScrollbars()
|
| // Restore before clamping because clamping clears the scroll anchor.
|
| // TODO(ymalik): This same logic exists in PaintLayerScrollableArea.
|
| // Remove when root-layer-scrolls is enabled.
|
| - if (clamped != scrollPositionDouble() && shouldPerformScrollAnchoring() && m_scrollAnchor.hasScroller()) {
|
| + if (clamped != scrollPositionDouble() && shouldPerformScrollAnchoring()) {
|
| m_scrollAnchor.restore();
|
| clamped = clampScrollPosition(scrollPositionDouble());
|
| }
|
|
|