Index: Source/core/frame/FrameView.cpp |
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
index 69e42ef47414032d9ece4f360069cc4aa9996db5..0a043b360750f4097852dc8cbf5a87af31cbe8e0 100644 |
--- a/Source/core/frame/FrameView.cpp |
+++ b/Source/core/frame/FrameView.cpp |
@@ -1419,8 +1419,8 @@ bool FrameView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRect |
IntRect updateRect = pixelSnappedIntRect(layer->repainter().repaintRectIncludingNonCompositingDescendants()); |
- RenderLayer* enclosingCompositingLayer = layer->enclosingCompositingLayer(ExcludeSelf); |
- if (enclosingCompositingLayer && !enclosingCompositingLayer->renderer()->isRenderView()) { |
+ const RenderLayerModelObject* repaintContainer = layer->renderer()->containerForRepaint(); |
+ if (repaintContainer && !repaintContainer->isRenderView()) { |
// If the fixed-position layer is contained by a composited layer that is not its containing block, |
// then we have to invalidate that enclosing layer, not the RenderView. |
// FIXME: Why do we need to issue this invalidation? Won't the fixed position element just scroll |
@@ -1429,7 +1429,7 @@ bool FrameView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRect |
IntRect previousRect = updateRect; |
previousRect.move(scrollDelta); |
updateRect.unite(previousRect); |
- enclosingCompositingLayer->repainter().setBackingNeedsRepaintInRect(updateRect); |
+ layer->renderer()->repaintUsingContainer(repaintContainer, updateRect, InvalidationScroll); |
} else { |
// Coalesce the paint invalidations that will be issued to the renderView. |
updateRect = contentsToRootView(updateRect); |