Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1831)

Unified Diff: Source/core/rendering/compositing/CompositingReasonFinder.cpp

Issue 207513002: Compute style-determined compositing reasons during recalc style (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: No longer friends Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/compositing/CompositingReasonFinder.cpp
diff --git a/Source/core/rendering/compositing/CompositingReasonFinder.cpp b/Source/core/rendering/compositing/CompositingReasonFinder.cpp
index 5339d29f809a81872d6afa076829ce1b4f7493fe..6f9ae626c35aa7cd735e75bf78d1f9c5a653df8d 100644
--- a/Source/core/rendering/compositing/CompositingReasonFinder.cpp
+++ b/Source/core/rendering/compositing/CompositingReasonFinder.cpp
@@ -59,7 +59,7 @@ bool CompositingReasonFinder::isMainFrame() const
return !m_renderView.document().ownerElement();
}
-CompositingReasons CompositingReasonFinder::styleDeterminedDirectReasons(RenderObject* renderer) const
+CompositingReasons CompositingReasonFinder::styleDeterminedReasons(RenderObject* renderer) const
{
CompositingReasons directReasons = CompositingReasonNone;
@@ -69,24 +69,23 @@ CompositingReasons CompositingReasonFinder::styleDeterminedDirectReasons(RenderO
if (requiresCompositingForBackfaceVisibilityHidden(renderer))
directReasons |= CompositingReasonBackfaceVisibilityHidden;
- if (requiresCompositingForAnimation(renderer))
- directReasons |= CompositingReasonActiveAnimation;
-
if (requiresCompositingForFilters(renderer))
directReasons |= CompositingReasonFilters;
if (requiresCompositingForWillChange(renderer))
directReasons |= CompositingReasonWillChange;
- directReasons |= renderer->additionalCompositingReasons(m_compositingTriggers);
-
- ASSERT(!(directReasons & ~CompositingReasonComboAllStyleDeterminedDirectReasons));
+ ASSERT(!(directReasons & ~CompositingReasonComboAllStyleDeterminedReasons));
return directReasons;
}
CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const
{
CompositingReasons directReasons = CompositingReasonNone;
+ RenderObject* renderer = layer->renderer();
+
+ if (requiresCompositingForAnimation(renderer))
+ directReasons |= CompositingReasonActiveAnimation;
if (requiresCompositingForOutOfFlowClipping(layer))
directReasons |= CompositingReasonOutOfFlowClipping;
@@ -97,17 +96,20 @@ CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(cons
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));
+ directReasons |= renderer->additionalCompositingReasons(m_compositingTriggers);
+
+ ASSERT(!(directReasons & CompositingReasonComboAllStyleDeterminedReasons));
return directReasons;
}
CompositingReasons CompositingReasonFinder::directReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const
{
- return styleDeterminedDirectReasons(layer->renderer()) | nonStyleDeterminedDirectReasons(layer, needToRecomputeCompositingRequirements);
+ CompositingReasons styleReasons = layer->styleDeterminedCompositingReasons();
+ ASSERT(styleDeterminedReasons(layer->renderer()) == styleReasons);
+ return styleReasons | nonStyleDeterminedDirectReasons(layer, needToRecomputeCompositingRequirements);
}
bool CompositingReasonFinder::requiresCompositingForScrollableFrame() const
« no previous file with comments | « Source/core/rendering/compositing/CompositingReasonFinder.h ('k') | Source/core/rendering/compositing/RenderLayerCompositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698