Chromium Code Reviews| Index: Source/core/rendering/RenderLayer.cpp |
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
| index dffb6999ea46b40e65a624eb5517db9e241a1a2c..0780d0a99b2b3050a3eb3b945fc25b0547a91fc9 100644 |
| --- a/Source/core/rendering/RenderLayer.cpp |
| +++ b/Source/core/rendering/RenderLayer.cpp |
| @@ -144,6 +144,7 @@ RenderLayer::RenderLayer(RenderLayerModelObject* renderer) |
| , m_hasSelfPaintingLayerDescendantDirty(false) |
| , m_hasOutOfFlowPositionedDescendant(false) |
| , m_hasOutOfFlowPositionedDescendantDirty(true) |
| + , m_forceNeedsCompositedScrolling(DoNotForceCompositedScrolling) |
| , m_needsCompositedScrolling(false) |
| , m_descendantsAreContiguousInStackingOrder(false) |
| , m_descendantsAreContiguousInStackingOrderDirty(true) |
| @@ -2051,6 +2052,15 @@ bool RenderLayer::usesCompositedScrolling() const |
| bool RenderLayer::needsCompositedScrolling() const |
| { |
| + switch (m_forceNeedsCompositedScrolling) { |
| + case DoNotForceCompositedScrolling: |
| + return m_needsCompositedScrolling; |
| + case ForceCompositedScrollingOn: |
| + return true; |
| + case ForceCompositedScrollingOff: |
| + return false; |
| + } |
| + |
|
Julien - ping for review
2013/05/06 22:56:59
ASSERT_NOT_REACHED()
Ian Vollick
2013/05/08 13:10:58
Done.
|
| return m_needsCompositedScrolling; |
| } |
| @@ -2084,6 +2094,21 @@ void RenderLayer::updateNeedsCompositedScrolling() |
| m_needsCompositedScrolling = needsCompositedScrolling; |
| + // Note, the z-order lists may need to be rebuilt, but our code guarantees |
| + // that we have not affected stacking, so we will not dirty |
| + // m_canBePromotedToStackingContainer for either us or our stacking context |
| + // or container. |
| + didUpdateNeedsCompositedScrolling(); |
| +} |
| + |
| +void RenderLayer::setForceNeedsCompositedScrolling(RenderLayer::ForceNeedsCompositedScrollingMode mode) |
| +{ |
| + m_forceNeedsCompositedScrolling = mode; |
| + didUpdateNeedsCompositedScrolling(); |
| +} |
| + |
| +void RenderLayer::didUpdateNeedsCompositedScrolling() |
| +{ |
| updateIsNormalFlowOnly(); |
| updateSelfPaintingLayer(); |