Index: Source/core/rendering/RenderLayerScrollableArea.cpp |
diff --git a/Source/core/rendering/RenderLayerScrollableArea.cpp b/Source/core/rendering/RenderLayerScrollableArea.cpp |
index 62d2aa6a6c2d9ad5676a362d7c4678171f49636d..5ad2ced0aaa43bb38086bd88b63da51606da8c94 100644 |
--- a/Source/core/rendering/RenderLayerScrollableArea.cpp |
+++ b/Source/core/rendering/RenderLayerScrollableArea.cpp |
@@ -355,11 +355,14 @@ void RenderLayerScrollableArea::setScrollOffset(const IntPoint& newScrollOffset) |
// FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeline migrates to tracing. |
InspectorInstrumentation::willScrollLayer(&box()); |
+ const RenderLayerModelObject* repaintContainer = box().containerForPaintInvalidation(); |
+ |
// Update the positions of our child layers (if needed as only fixed layers should be impacted by a scroll). |
// We don't update compositing layers, because we need to do a deep update from the compositing ancestor. |
if (!frameView->isInPerformLayout()) { |
// If we're in the middle of layout, we'll just update layers once layout has finished. |
- layer()->updateLayerPositionsAfterOverflowScroll(); |
+ layer()->clipper().clearClipRectsIncludingDescendants(); |
+ box().setPreviousPaintInvalidationRect(box().boundsRectForPaintInvalidation(repaintContainer)); |
// Update regions, scrolling may change the clip of a particular region. |
frameView->updateAnnotatedRegions(); |
// FIXME: We shouldn't call updateWidgetPositions() here since it might tear down the render tree, |
@@ -369,7 +372,6 @@ void RenderLayerScrollableArea::setScrollOffset(const IntPoint& newScrollOffset) |
updateCompositingLayersAfterScroll(); |
} |
- const RenderLayerModelObject* repaintContainer = box().containerForPaintInvalidation(); |
// The caret rect needs to be invalidated after scrolling |
frame->selection().setCaretRectNeedsUpdate(); |