Index: Source/WebCore/rendering/RenderLayerCompositor.cpp |
diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp |
index 4d8896984348cdd984a24a978bccf490fcab42e1..7e2ee4af30f6dadcda0788d657c956300f27d81f 100644 |
--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp |
+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp |
@@ -309,6 +309,34 @@ bool RenderLayerCompositor::hasAnyAdditionalCompositedLayers(const RenderLayer* |
return m_compositedLayerCount > (rootLayer->isComposited() ? 1 : 0); |
} |
+void RenderLayerCompositor::updateDescendantsAreContiguousInStackingOrderRecursive(RenderLayer* layer) |
+{ |
+ for (RenderLayer* child = layer->firstChild(); child; child = child->nextSibling()) |
+ updateDescendantsAreContiguousInStackingOrderRecursive(child); |
+ layer->updateDescendantDependentFlags(); |
+ layer->updateDescendantsAreContiguousInStackingOrder(); |
+} |
+ |
+void RenderLayerCompositor::updateNeedsCompositedScrolling(RenderLayer* layer) |
+{ |
+ layer->updateNeedsCompositedScrolling(); |
+ |
+ // These values depend on our composited scrolling status. |
+ layer->updateIsNormalFlowOnly(); |
+ layer->updateSelfPaintingLayer(); |
+ |
+ for (RenderLayer* child = layer->firstChild(); child; child = child->nextSibling()) |
+ updateNeedsCompositedScrolling(child); |
+} |
+ |
+void RenderLayerCompositor::updateLayoutDependentState() |
+{ |
+ RenderLayer* updateRoot = rootRenderLayer(); |
+ updateRoot->updateDescendantDependentFlags(); |
+ updateDescendantsAreContiguousInStackingOrderRecursive(updateRoot); |
+ updateNeedsCompositedScrolling(updateRoot); |
+} |
+ |
void RenderLayerCompositor::updateCompositingLayers(CompositingUpdateType updateType, RenderLayer* updateRoot) |
{ |
// Avoid updating the layers with old values. Compositing layers will be updated after the layout is finished. |