Chromium Code Reviews| Index: Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| diff --git a/Source/core/rendering/compositing/CompositedLayerMapping.cpp b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| index 2bee39b3bbe77d163122873f20ebb097d53a526e..ff353377186130438ae2f4fbca7e372222f28611 100644 |
| --- a/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| +++ b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| @@ -1890,12 +1890,15 @@ bool CompositedLayerMapping::updateRequiresOwnBackingStoreForAncestorReasons(con |
| && (compositingAncestorLayer->compositedLayerMapping()->mainGraphicsLayer()->drawsContent() |
| || compositingAncestorLayer->compositedLayerMapping()->paintsIntoCompositedAncestor()); |
| - if (paintsIntoCompositedAncestor() != previousPaintsIntoCompositedAncestor) |
| - compositor()->paintInvalidationOnCompositingChange(&m_owningLayer); |
| - |
| - // FIXME: this is bogus. We need to make this assignment before the check above. |
| m_requiresOwnBackingStoreForAncestorReasons = !canPaintIntoAncestor; |
|
pdr.
2014/08/28 20:21:13
This code is really only tracking changes to m_req
chrishtr
2014/08/28 20:27:56
That would invalidate more than necessary. Only if
|
| + if (paintsIntoCompositedAncestor() != previousPaintsIntoCompositedAncestor) { |
| + // Back out the change temporarily while invalidating with respect to the old container. |
| + m_requiresOwnBackingStoreForAncestorReasons = !m_requiresOwnBackingStoreForAncestorReasons; |
| + compositor()->paintInvalidationOnCompositingChange(&m_owningLayer); |
| + m_requiresOwnBackingStoreForAncestorReasons = !m_requiresOwnBackingStoreForAncestorReasons; |
| + } |
| + |
| return m_requiresOwnBackingStoreForAncestorReasons != previousRequiresOwnBackingStoreForAncestorReasons; |
| } |
| @@ -1913,8 +1916,12 @@ bool CompositedLayerMapping::updateRequiresOwnBackingStoreForIntrinsicReasons() |
| || renderer->hasReflection() |
| || renderer->hasFilter(); |
| - if (paintsIntoCompositedAncestor() != previousPaintsIntoCompositedAncestor) |
| + if (paintsIntoCompositedAncestor() != previousPaintsIntoCompositedAncestor) { |
| + // Back out the change temporarily while invalidating with respect to the old container. |
| + m_requiresOwnBackingStoreForIntrinsicReasons = !m_requiresOwnBackingStoreForIntrinsicReasons; |
| compositor()->paintInvalidationOnCompositingChange(&m_owningLayer); |
| + m_requiresOwnBackingStoreForIntrinsicReasons = !m_requiresOwnBackingStoreForIntrinsicReasons; |
| + } |
| return m_requiresOwnBackingStoreForIntrinsicReasons != previousRequiresOwnBackingStoreForIntrinsicReasons; |
| } |