| Index: Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| diff --git a/Source/core/rendering/compositing/RenderLayerCompositor.cpp b/Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| index 32563e506ffc7042cd66ec0c7de38d3caf1fb4bb..f62b204885829561013f04195cf29e35b2e02f3a 100644
|
| --- a/Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| +++ b/Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| @@ -388,6 +388,14 @@ void RenderLayerCompositor::setNeedsCompositingUpdate(CompositingUpdateType upda
|
| m_renderView.frameView()->scheduleAnimation();
|
| }
|
|
|
| +static void clearAncestorDependentPropertyCacheRecursive(RenderLayer* layer)
|
| +{
|
| + layer->clearAncestorDependentPropertyCache();
|
| + RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), AllChildren);
|
| + for (RenderLayer* child = layer->firstChild(); child; child = child->nextSibling())
|
| + clearAncestorDependentPropertyCacheRecursive(child);
|
| +}
|
| +
|
| void RenderLayerCompositor::updateCompositingLayers()
|
| {
|
| TRACE_EVENT0("blink_rendering", "RenderLayerCompositor::updateCompositingLayers");
|
| @@ -405,6 +413,9 @@ void RenderLayerCompositor::updateCompositingLayers()
|
|
|
| updateCompositingLayersInternal();
|
|
|
| + // Clear data only valid during compositing updates.
|
| + clearAncestorDependentPropertyCacheRecursive(rootRenderLayer());
|
| +
|
| lifecycle().advanceTo(DocumentLifecycle::CompositingClean);
|
|
|
| DocumentAnimations::startPendingAnimations(m_renderView.document());
|
|
|