Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index 71c1ebf9c1a3dbc5742c8849ebd69fa57678308f..80362fe7d3d741e8487f7139b9edb2b11d40e937 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -710,8 +710,15 @@ void RenderLayer::setHasVisibleContent() |
return; |
} |
- m_visibleContentStatusDirty = false; |
m_hasVisibleContent = true; |
+ m_visibleContentStatusDirty = false; |
+ |
+ { |
+ DisableCompositingQueryAsserts disabler; |
ojan
2014/03/05 18:29:51
Are there tests that you know hit this? It'd be ni
abarth-chromium
2014/03/05 23:12:19
I haven't tried, but I'm sure it's hit by many tes
|
+ if (RenderLayer* compositingLayer = enclosingCompositingLayer()) |
+ compositingLayer->compositedLayerMapping()->setNeedsGeometryUpdate(); |
+ } |
+ |
repainter().computeRepaintRects(renderer()->containerForRepaint()); |
if (!m_stackingNode->isNormalFlowOnly()) { |
// We don't collect invisible layers in z-order lists if we are not in compositing mode. |
@@ -875,6 +882,10 @@ void RenderLayer::updateDescendantDependentFlags() |
} |
} |
m_visibleContentStatusDirty = false; |
+ |
+ DisableCompositingQueryAsserts disabler; |
+ if (RenderLayer* compositingLayer = enclosingCompositingLayer()) |
+ compositingLayer->compositedLayerMapping()->setNeedsGeometryUpdate(); |
ojan
2014/03/05 18:29:51
Technically, you only need to do this if m_hasVisi
abarth-chromium
2014/03/05 23:12:19
That's right. I'll add that branch.
|
} |
} |
@@ -3507,6 +3518,7 @@ CompositedLayerMappingPtr RenderLayer::ensureCompositedLayerMapping() |
{ |
if (!m_compositedLayerMapping) { |
m_compositedLayerMapping = adoptPtr(new CompositedLayerMapping(this)); |
+ m_compositedLayerMapping->setNeedsGeometryUpdate(); |
updateOrRemoveFilterEffectRenderer(); |
@@ -3518,6 +3530,9 @@ CompositedLayerMappingPtr RenderLayer::ensureCompositedLayerMapping() |
void RenderLayer::clearCompositedLayerMapping(bool layerBeingDestroyed) |
{ |
+ if (!layerBeingDestroyed) |
+ m_compositedLayerMapping->setNeedsGeometryUpdate(); |
+ |
m_compositedLayerMapping.clear(); |
if (!layerBeingDestroyed) |
@@ -3873,6 +3888,9 @@ void RenderLayer::styleChanged(StyleDifference diff, const RenderStyle* oldStyle |
// https://code.google.com/p/chromium/issues/detail?id=343756 |
DisableCompositingQueryAsserts disabler; |
+ if (RenderLayer* compositingLayer = enclosingCompositingLayer()) |
+ compositingLayer->compositedLayerMapping()->setNeedsGeometryUpdate(); |
+ |
const RenderStyle* newStyle = renderer()->style(); |
compositor()->updateLayerCompositingState(this, RenderLayerCompositor::UseChickenEggHacks); |