Index: Source/core/frame/FrameView.cpp |
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
index 54f061d373455b45f334ac84a9e3ecc822b79fea..44aeb8ca5e4ac4e2a755ec008940d72f321ac1ff 100644 |
--- a/Source/core/frame/FrameView.cpp |
+++ b/Source/core/frame/FrameView.cpp |
@@ -1259,7 +1259,7 @@ void FrameView::updateCanBlitOnScrollRecursively() |
bool FrameView::contentsInCompositedLayer() const |
{ |
RenderView* renderView = this->renderView(); |
- if (renderView && renderView->compositingState() == PaintsIntoOwnBacking) { |
+ if (renderView && renderView->isComposited()) { |
GraphicsLayer* layer = renderView->layer()->compositedLayerMapping()->mainGraphicsLayer(); |
if (layer && layer->drawsContent()) |
return true; |
@@ -1376,10 +1376,10 @@ bool FrameView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRect |
ASSERT(renderer->hasLayer()); |
RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); |
- // 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) |
+ // 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()) |
continue; |
if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotCompositedForBoundsOutOfView |