| Index: Source/core/rendering/compositing/CompositingReasonFinder.cpp
|
| diff --git a/Source/core/rendering/compositing/CompositingReasonFinder.cpp b/Source/core/rendering/compositing/CompositingReasonFinder.cpp
|
| index c5da5275278b6a16b123a7de432cf0bd9fa380c8..8f2bda03a963d6e6c4649a077ae32130dd4ce6f5 100644
|
| --- a/Source/core/rendering/compositing/CompositingReasonFinder.cpp
|
| +++ b/Source/core/rendering/compositing/CompositingReasonFinder.cpp
|
| @@ -100,19 +100,21 @@ CompositingReasons CompositingReasonFinder::styleDeterminedReasons(RenderObject*
|
| {
|
| CompositingReasons directReasons = CompositingReasonNone;
|
|
|
| + RenderStyle* style = renderer->style();
|
| +
|
| if (requiresCompositingForTransform(renderer))
|
| directReasons |= CompositingReason3DTransform;
|
|
|
| - if (requiresCompositingForBackfaceVisibilityHidden(renderer))
|
| + if (requiresCompositingForFilters(renderer))
|
| + directReasons |= CompositingReasonFilters;
|
| +
|
| + if (style->backfaceVisibility() == BackfaceVisibilityHidden)
|
| directReasons |= CompositingReasonBackfaceVisibilityHidden;
|
|
|
| - if (requiresCompositingForAnimation(renderer))
|
| + if (style->shouldCompositeForCurrentAnimations())
|
| directReasons |= CompositingReasonActiveAnimation;
|
|
|
| - if (requiresCompositingForFilters(renderer))
|
| - directReasons |= CompositingReasonFilters;
|
| -
|
| - if (requiresCompositingForWillChangeCompositingHint(renderer))
|
| + if (style->hasWillChangeCompositingHint())
|
| directReasons |= CompositingReasonWillChangeCompositingHint;
|
|
|
| ASSERT(!(directReasons & ~CompositingReasonComboAllStyleDeterminedReasons));
|
| @@ -126,11 +128,6 @@ bool CompositingReasonFinder::requiresCompositingForTransform(RenderObject* rend
|
| return renderer->hasTransform() && renderer->style()->transform().has3DOperation();
|
| }
|
|
|
| -bool CompositingReasonFinder::requiresCompositingForBackfaceVisibilityHidden(RenderObject* renderer) const
|
| -{
|
| - return renderer->style()->backfaceVisibility() == BackfaceVisibilityHidden;
|
| -}
|
| -
|
| bool CompositingReasonFinder::requiresCompositingForFilters(RenderObject* renderer) const
|
| {
|
| if (!(m_compositingTriggers & FilterTrigger))
|
| @@ -139,26 +136,21 @@ bool CompositingReasonFinder::requiresCompositingForFilters(RenderObject* render
|
| return renderer->hasFilter();
|
| }
|
|
|
| -bool CompositingReasonFinder::requiresCompositingForWillChangeCompositingHint(const RenderObject* renderer) const
|
| -{
|
| - return renderer->style()->hasWillChangeCompositingHint();
|
| -}
|
| -
|
| CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const
|
| {
|
| CompositingReasons directReasons = CompositingReasonNone;
|
| RenderObject* renderer = layer->renderer();
|
|
|
| if (hasOverflowScrollTrigger()) {
|
| - if (requiresCompositingForOutOfFlowClipping(layer))
|
| + if (layer->isUnclippedDescendant())
|
| directReasons |= CompositingReasonOutOfFlowClipping;
|
|
|
| - if (requiresCompositingForOverflowScrollingParent(layer))
|
| + if (layer->scrollParent())
|
| directReasons |= CompositingReasonOverflowScrollingParent;
|
| - }
|
|
|
| - if (requiresCompositingForOverflowScrolling(layer))
|
| - directReasons |= CompositingReasonOverflowScrollingTouch;
|
| + if (layer->needsCompositedScrolling())
|
| + directReasons |= CompositingReasonOverflowScrollingTouch;
|
| + }
|
|
|
| if (requiresCompositingForPositionSticky(renderer, layer))
|
| directReasons |= CompositingReasonPositionSticky;
|
| @@ -172,28 +164,6 @@ CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(cons
|
| return directReasons;
|
| }
|
|
|
| -bool CompositingReasonFinder::requiresCompositingForAnimation(RenderObject* renderer) const
|
| -{
|
| - return renderer->style()->shouldCompositeForCurrentAnimations();
|
| -}
|
| -
|
| -bool CompositingReasonFinder::requiresCompositingForOutOfFlowClipping(const RenderLayer* layer) const
|
| -{
|
| - return layer->isUnclippedDescendant();
|
| -}
|
| -
|
| -bool CompositingReasonFinder::requiresCompositingForOverflowScrollingParent(const RenderLayer* layer) const
|
| -{
|
| - if (!hasOverflowScrollTrigger())
|
| - return false;
|
| - return layer->scrollParent();
|
| -}
|
| -
|
| -bool CompositingReasonFinder::requiresCompositingForOverflowScrolling(const RenderLayer* layer) const
|
| -{
|
| - return layer->needsCompositedScrolling();
|
| -}
|
| -
|
| bool CompositingReasonFinder::requiresCompositingForPosition(RenderObject* renderer, const RenderLayer* layer, RenderLayer::ViewportConstrainedNotCompositedReason* viewportConstrainedNotCompositedReason, bool* needToRecomputeCompositingRequirements) const
|
| {
|
| return requiresCompositingForPositionSticky(renderer, layer) || requiresCompositingForPositionFixed(renderer, layer, viewportConstrainedNotCompositedReason, needToRecomputeCompositingRequirements);
|
|
|