Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index c47be6490ca11ad4b7035a408ddf811fd9988690..bf0ca8532c64ade336c2d1b92f4ed091aa250edd 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -1185,11 +1185,12 @@ RenderLayer* RenderLayer::enclosingFilterLayer(IncludeSelfOrNot includeSelf) con |
return 0; |
} |
-void RenderLayer::setCompositingReasons(CompositingReasons reasons) |
+void RenderLayer::setCompositingReasons(CompositingReasons reasons, CompositingReasons mask) |
{ |
- if (m_compositingProperties.compositingReasons == reasons) |
+ ASSERT(reasons == (reasons & mask)); |
+ if ((m_compositingProperties.compositingReasons & mask) == (reasons & mask)) |
return; |
- m_compositingProperties.compositingReasons = reasons; |
+ m_compositingProperties.compositingReasons = (reasons & mask) | (m_compositingProperties.compositingReasons & ~mask); |
m_clipper.setCompositingClipRectsDirty(); |
} |
@@ -3908,6 +3909,8 @@ void RenderLayer::styleChanged(StyleDifference diff, const RenderStyle* oldStyle |
updateFilters(oldStyle, renderer()->style()); |
} |
+ compositor()->updateStyleDeterminedCompositingReasons(this); |
+ |
// FIXME: Remove incremental compositing updates after fixing the chicken/egg issues |
// https://code.google.com/p/chromium/issues/detail?id=343756 |
DisableCompositingQueryAsserts disabler; |