Index: third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
index 884d88c7c867f4c4d64bfbc974ddf4acb98d2b54..ca0820104bca6e25983d581b066834c04425cd4b 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
@@ -897,6 +897,10 @@ void LayoutBlock::layout() |
{ |
LayoutAnalyzer::Scope analyzer(*this); |
+ bool needsScrollAnchoring = RuntimeEnabledFeatures::scrollAnchoringEnabled() && hasOverflowClip(); |
+ if (needsScrollAnchoring) |
+ scrollableArea()->scrollAnchor().save(); |
+ |
// Table cells call layoutBlock directly, so don't add any logic here. Put code into |
// layoutBlock(). |
layoutBlock(false); |
@@ -907,6 +911,9 @@ void LayoutBlock::layout() |
clearLayoutOverflow(); |
invalidateBackgroundObscurationStatus(); |
+ |
+ if (needsScrollAnchoring) |
+ scrollableArea()->scrollAnchor().restore(); |
} |
bool LayoutBlock::widthAvailableToChildrenHasChanged() |