Index: Source/core/rendering/compositing/CompositingReasonFinder.cpp |
diff --git a/Source/core/rendering/compositing/CompositingReasonFinder.cpp b/Source/core/rendering/compositing/CompositingReasonFinder.cpp |
index e2f80be02c3fa794eb4dd51cbb785e8d2d38cf0f..81cb29d085bb1ac1d3f29bcef9ba4b145042ba4e 100644 |
--- a/Source/core/rendering/compositing/CompositingReasonFinder.cpp |
+++ b/Source/core/rendering/compositing/CompositingReasonFinder.cpp |
@@ -59,9 +59,8 @@ bool CompositingReasonFinder::isMainFrame() const |
return !m_renderView.document().ownerElement(); |
} |
-CompositingReasons CompositingReasonFinder::directReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const |
+CompositingReasons CompositingReasonFinder::styleDeterminedDirectReasons(RenderObject* renderer) const |
{ |
- RenderObject* renderer = layer->renderer(); |
CompositingReasons directReasons = CompositingReasonNone; |
if (requiresCompositingForTransform(renderer)) |
@@ -76,26 +75,41 @@ CompositingReasons CompositingReasonFinder::directReasons(const RenderLayer* lay |
if (requiresCompositingForFilters(renderer)) |
directReasons |= CompositingReasonFilters; |
- if (requiresCompositingForPosition(renderer, layer, 0, needToRecomputeCompositingRequirements)) |
- directReasons |= renderer->style()->position() == FixedPosition ? CompositingReasonPositionFixed : CompositingReasonPositionSticky; |
+ if (requiresCompositingForWillChange(renderer)) |
+ directReasons |= CompositingReasonWillChange; |
- if (requiresCompositingForOverflowScrolling(layer)) |
- directReasons |= CompositingReasonOverflowScrollingTouch; |
+ directReasons |= renderer->additionalCompositingReasons(m_compositingTriggers); |
- if (requiresCompositingForOverflowScrollingParent(layer)) |
- directReasons |= CompositingReasonOverflowScrollingParent; |
+ ASSERT(!(directReasons & ~CompositingReasonComboAllStyleDeterminedDirectReasons)); |
+ return directReasons; |
+} |
+ |
+CompositingReasons CompositingReasonFinder::remainingDirectReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const |
ojan
2014/03/20 23:56:02
I think we need a better name for this. Consider i
|
+{ |
+ CompositingReasons directReasons = CompositingReasonNone; |
if (requiresCompositingForOutOfFlowClipping(layer)) |
directReasons |= CompositingReasonOutOfFlowClipping; |
- if (requiresCompositingForWillChange(renderer)) |
- directReasons |= CompositingReasonWillChange; |
+ if (requiresCompositingForOverflowScrolling(layer)) |
+ directReasons |= CompositingReasonOverflowScrollingTouch; |
- directReasons |= renderer->additionalCompositingReasons(m_compositingTriggers); |
+ if (requiresCompositingForOverflowScrollingParent(layer)) |
+ directReasons |= CompositingReasonOverflowScrollingParent; |
+ RenderObject* renderer = layer->renderer(); |
+ if (requiresCompositingForPosition(renderer, layer, 0, needToRecomputeCompositingRequirements)) |
+ directReasons |= renderer->style()->position() == FixedPosition ? CompositingReasonPositionFixed : CompositingReasonPositionSticky; |
+ |
+ ASSERT(!(directReasons & CompositingReasonComboAllStyleDeterminedDirectReasons)); |
return directReasons; |
} |
+CompositingReasons CompositingReasonFinder::directReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const |
+{ |
+ return styleDeterminedDirectReasons(layer->renderer()) | remainingDirectReasons(layer, needToRecomputeCompositingRequirements); |
+} |
+ |
bool CompositingReasonFinder::requiresCompositingForScrollableFrame() const |
{ |
// Need this done first to determine overflow. |