CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const { CompositingReasons directReasons = CompositingReasonNone; RenderObject* renderer = layer->renderer(); if (requiresCompositingForAnimation(renderer)) directReasons |= CompositingReasonActiveAnimation; if (m_renderView.compositorDrivenAcceleratedScrollingEnabled()) { if (requiresCompositingForOutOfFlowClipping(layer)) directReasons |= CompositingReasonOutOfFlowClipping; if (requiresCompositingForOverflowScrollingParent(layer)) directReasons |= CompositingReasonOverflowScrollingParent; } if (requiresCompositingForOverflowScrolling(layer)) directReasons |= CompositingReasonOverflowScrollingTouch; if (requiresCompositingForPosition(renderer, layer, 0, needToRecomputeCompositingRequirements)) directReasons |= renderer->style()->position() == FixedPosition ? CompositingReasonPositionFixed : CompositingReasonPositionSticky; directReasons |= renderer->additionalCompositingReasons(m_compositingTriggers); ASSERT(!(directReasons & CompositingReasonComboAllStyleDeterminedReasons)); return directReasons; }
CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(const RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const { CompositingReasons directReasons = CompositingReasonNone; RenderObject* renderer = layer->renderer(); if (hasOverflowScrollTrigger()) { if (requiresCompositingForOutOfFlowClipping(layer)) directReasons |= CompositingReasonOutOfFlowClipping; if (requiresCompositingForOverflowScrollingParent(layer)) directReasons |= CompositingReasonOverflowScrollingParent; } if (requiresCompositingForOverflowScrolling(layer)) directReasons |= CompositingReasonOverflowScrollingTouch; if (requiresCompositingForPositionSticky(renderer, layer)) directReasons |= CompositingReasonPositionSticky; if (requiresCompositingForPositionFixed(renderer, layer, 0, needToRecomputeCompositingRequirements)) directReasons |= CompositingReasonPositionFixed; directReasons |= renderer->additionalCompositingReasons(m_compositingTriggers); ASSERT(!(directReasons & CompositingReasonComboAllStyleDeterminedReasons)); return directReasons; }