Chromium Code Reviews| 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); |