Index: Source/core/rendering/RenderLayer.h |
diff --git a/Source/core/rendering/RenderLayer.h b/Source/core/rendering/RenderLayer.h |
index cf9654aa369d9899df8cf2db658482a291ef91a7..31e3bfd9efac2ac35c949fc7ac9da5adb2573db1 100644 |
--- a/Source/core/rendering/RenderLayer.h |
+++ b/Source/core/rendering/RenderLayer.h |
@@ -358,6 +358,9 @@ public: |
// compositing state may legally be read. |
bool isAllowedToQueryCompositingState() const; |
+ // This returns true if our current phase is the compositing update. |
+ bool isInCompositingUpdate() const; |
+ |
CompositedLayerMappingPtr compositedLayerMapping() const; |
CompositedLayerMappingPtr ensureCompositedLayerMapping(); |
@@ -479,7 +482,20 @@ public: |
bool hasDirectReasonsForCompositing() const { return compositingReasons() & CompositingReasonComboAllDirectReasons; } |
+ void clearAncestorDependentPropertyCache(); |
+ |
private: |
+ struct AncestorDependentPropertyCache { |
+ AncestorDependentPropertyCache(); |
+ RenderLayer* ancestorCompositedScrollingLayer; |
+ RenderLayer* scrollParent; |
+ |
+ bool ancestorCompositedScrollingLayerDirty; |
+ bool scrollParentDirty; |
+ }; |
+ |
+ void ensureAncestorDependentPropertyCache() const; |
+ |
bool hasOverflowControls() const; |
void setIsUnclippedDescendant(bool isUnclippedDescendant) { m_isUnclippedDescendant = isUnclippedDescendant; } |
@@ -578,7 +594,6 @@ private: |
bool shouldBeSelfPaintingLayer() const; |
-private: |
// FIXME: We should only create the stacking node if needed. |
bool requiresStackingNode() const { return true; } |
void updateStackingNode(); |
@@ -630,7 +645,6 @@ private: |
friend class RenderLayerCompositor; |
friend class RenderLayerModelObject; |
-private: |
LayerType m_layerType; |
// Self-painting layer is an optimization where we avoid the heavy RenderLayer painting |
@@ -756,6 +770,8 @@ private: |
OwnPtr<CompositedLayerMapping> m_compositedLayerMapping; |
OwnPtr<RenderLayerScrollableArea> m_scrollableArea; |
+ mutable OwnPtr<AncestorDependentPropertyCache> m_ancestorDependentPropertyCache; |
+ |
CompositedLayerMapping* m_groupedMapping; |
RenderLayerRepainter m_repainter; |