Index: Source/core/page/FrameView.cpp |
diff --git a/Source/core/page/FrameView.cpp b/Source/core/page/FrameView.cpp |
index 783172d38737d342ee759bf7ba6ec1b2ce988262..397ceaab8fc72ca4bc713686d6c99116e8aba49a 100644 |
--- a/Source/core/page/FrameView.cpp |
+++ b/Source/core/page/FrameView.cpp |
@@ -1254,7 +1254,7 @@ void FrameView::updateCanBlitOnScrollRecursively() |
bool FrameView::contentsInCompositedLayer() const |
{ |
RenderView* renderView = this->renderView(); |
- if (renderView && renderView->isComposited()) { |
+ if (renderView && renderView->compositingState() == PaintsIntoOwnBacking) { |
GraphicsLayer* layer = renderView->layer()->compositedLayerMapping()->mainGraphicsLayer(); |
if (layer && layer->drawsContent()) |
return true; |
@@ -1365,10 +1365,10 @@ bool FrameView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRect |
ASSERT(renderer->hasLayer()); |
RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); |
- // Composited layers may still actually paint into their ancestor. |
- // If that happens, the viewport constrained object needs to be |
- // repainted on scroll. |
- if (layer->isComposited() && !layer->compositedLayerMapping()->paintsIntoCompositedAncestor()) |
+ // Layers that paint into their ancestor or into a grouped backing will still need |
+ // to apply a repaint invalidation. If the layer paints into its own backing, then |
+ // it does not need repainting just to scroll. |
+ if (layer->compositingState() == PaintsIntoOwnBacking) |
continue; |
if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotCompositedForBoundsOutOfView |