Index: Source/core/rendering/RenderLayerBacking.cpp |
diff --git a/Source/core/rendering/RenderLayerBacking.cpp b/Source/core/rendering/RenderLayerBacking.cpp |
index 2c41429863a1060a6d2efd30e172e3e2924e47d7..a5a84c2b7768a81120c75fe9546c869b246ec6c4 100644 |
--- a/Source/core/rendering/RenderLayerBacking.cpp |
+++ b/Source/core/rendering/RenderLayerBacking.cpp |
@@ -195,8 +195,10 @@ void RenderLayerBacking::createPrimaryGraphicsLayer() |
m_graphicsLayer = createGraphicsLayer(layerName, m_owningLayer->compositingReasons()); |
+#if !OS(ANDROID) |
if (m_isMainFrameRenderViewLayer) |
- m_graphicsLayer->setContentsOpaque(true); |
+ m_graphicsLayer->contentLayer()->setDrawCheckerboardForMissingTiles(true); |
+#endif |
updateOpacity(renderer()->style()); |
updateTransform(renderer()->style()); |
@@ -268,6 +270,13 @@ void RenderLayerBacking::updateLayerBlendMode(const RenderStyle*) |
{ |
} |
+void RenderLayerBacking::updateContentsOpaque() |
+{ |
+ // For non-root layers, background is always painted by the primary graphics layer. |
+ ASSERT(m_isMainFrameRenderViewLayer || !m_backgroundLayer); |
+ m_graphicsLayer->setContentsOpaque(m_owningLayer->backgroundIsKnownToBeOpaqueInRect(compositedBounds())); |
+} |
+ |
static bool hasNonZeroTransformOrigin(const RenderObject* renderer) |
{ |
RenderStyle* style = renderer->style(); |
@@ -379,7 +388,7 @@ void RenderLayerBacking::updateAfterLayout(UpdateAfterLayoutFlags flags) |
} |
} |
- if (flags & NeedsFullRepaint && !paintsIntoWindow() && !paintsIntoCompositedAncestor()) |
+ if (flags & NeedsFullRepaint && !paintsIntoCompositedAncestor()) |
setContentsNeedDisplay(); |
} |
@@ -572,11 +581,6 @@ void RenderLayerBacking::updateGraphicsLayerGeometry() |
if (m_boundsConstrainedByClipping) |
m_graphicsLayer->setNeedsDisplay(); |
} |
- if (!m_isMainFrameRenderViewLayer) { |
- // For non-root layers, background is always painted by the primary graphics layer. |
- ASSERT(!m_backgroundLayer); |
- m_graphicsLayer->setContentsOpaque(m_owningLayer->backgroundIsKnownToBeOpaqueInRect(localCompositingBounds)); |
- } |
// If we have a layer that clips children, position it. |
IntRect clippingBox; |
@@ -726,6 +730,7 @@ void RenderLayerBacking::updateGraphicsLayerGeometry() |
updateContentsRect(isSimpleContainer); |
updateBackgroundColor(isSimpleContainer); |
updateDrawsContent(isSimpleContainer); |
+ updateContentsOpaque(); |
updateAfterWidgetResize(); |
registerScrollingLayers(); |
@@ -1330,7 +1335,7 @@ bool RenderLayerBacking::hasVisibleNonCompositingDescendantLayers() const |
bool RenderLayerBacking::containsPaintedContent() const |
{ |
- if (isSimpleContainerCompositingLayer() || paintsIntoWindow() || paintsIntoCompositedAncestor() || m_artificiallyInflatedBounds || m_owningLayer->isReflection()) |
+ if (isSimpleContainerCompositingLayer() || paintsIntoCompositedAncestor() || m_artificiallyInflatedBounds || m_owningLayer->isReflection()) |
return false; |
if (isDirectlyCompositedImage()) |
@@ -1513,15 +1518,6 @@ GraphicsLayer* RenderLayerBacking::childForSuperlayers() const |
return m_graphicsLayer.get(); |
} |
-bool RenderLayerBacking::paintsIntoWindow() const |
-{ |
- if (m_owningLayer->isRootLayer()) { |
- return compositor()->rootLayerAttachment() != RenderLayerCompositor::RootLayerAttachedViaEnclosingFrame; |
- } |
- |
- return false; |
-} |
- |
void RenderLayerBacking::setRequiresOwnBackingStore(bool requiresOwnBacking) |
{ |
if (requiresOwnBacking == m_requiresOwnBackingStore) |
@@ -1602,7 +1598,7 @@ void RenderLayerBacking::paintIntoLayer(const GraphicsLayer* graphicsLayer, Grap |
const IntRect& paintDirtyRect, // In the coords of rootLayer. |
PaintBehavior paintBehavior, GraphicsLayerPaintingPhase paintingPhase) |
{ |
- if (paintsIntoWindow() || paintsIntoCompositedAncestor()) { |
+ if (paintsIntoCompositedAncestor()) { |
ASSERT_NOT_REACHED(); |
return; |
} |