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 27e2f756b675aba83d5c954abd15e7b6acbff981..4062913cbae4de8b3596f9f7deff998ee2ee13ca 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
@@ -365,6 +365,9 @@ void LayoutBlock::updateFromStyle() |
bool shouldClipOverflow = !styleRef().isOverflowVisible() && allowsOverflowClip(); |
if (shouldClipOverflow != hasOverflowClip()) { |
+ if (!shouldClipOverflow) |
+ getScrollableArea()->invalidateAllStickyConstraints(); |
+ |
// FIXME: This shouldn't be required if we tracked the visual overflow |
// generated by positioned children or self painting layers. crbug.com/345403 |
for (LayoutObject* child = firstChild(); child; child = child->nextSibling()) |
@@ -880,8 +883,12 @@ bool LayoutBlock::finishDelayUpdateScrollInfo(SubtreeLayoutScope* layoutScope) |
return childrenMarkedForRelayout; |
} |
-void LayoutBlock::updateScrollInfoAfterLayout() |
+void LayoutBlock::updateAfterLayout() |
{ |
+ invalidateStickyConstraints(); |
+ |
+ // Update our scroll information if we're overflow:auto/scroll/hidden now that we know if |
+ // we overflow or not. |
if (hasOverflowClip()) { |
if (style()->isFlippedBlocksWritingMode()) { |
// FIXME: https://bugs.webkit.org/show_bug.cgi?id=97937 |
@@ -1124,7 +1131,7 @@ bool LayoutBlock::simplifiedLayout() |
updateLayerTransformAfterLayout(); |
- updateScrollInfoAfterLayout(); |
+ updateAfterLayout(); |
clearNeedsLayout(); |