void DocumentAnimations::serviceBeforeGetComputedStyle(Node& node, CSSPropertyID property) { if (node.isElementNode()) { const Element& element = toElement(node); if (const ActiveAnimations* activeAnimations = element.activeAnimations()) { if (activeAnimations->hasActiveAnimationsOnCompositor(property)) updateAnimationTiming(element.document(), monotonicallyIncreasingTime()); } } }
void DocumentAnimations::updateAnimationTimingForGetComputedStyle(Node& node, CSSPropertyID property) { if (!node.isElementNode()) return; const Element& element = toElement(node); if (const ComputedStyle* style = element.computedStyle()) { if ((property == CSSPropertyOpacity && style->isRunningOpacityAnimationOnCompositor()) || (property == CSSPropertyTransform && style->isRunningTransformAnimationOnCompositor()) || (property == CSSPropertyWebkitFilter && style->isRunningFilterAnimationOnCompositor())) { updateAnimationTiming(element.document(), TimingUpdateOnDemand); } } }
void DocumentAnimations::updateOutdatedAnimationPlayersIfNeeded(Document& document) { if (needsOutdatedAnimationPlayerUpdate(document)) updateAnimationTiming(document, TimingUpdateOnDemand); }
void DocumentAnimations::updateAnimationTimingForAnimationFrame(Document& document, double monotonicAnimationStartTime) { document.animationClock().updateTime(monotonicAnimationStartTime); updateAnimationTiming(document, TimingUpdateForAnimationFrame); }
void DocumentAnimations::updateAnimationTimingIfNeeded(Document& document) { if (needsOutdatedAnimationUpdate(document) || document.timeline().needsAnimationTimingUpdate()) updateAnimationTiming(document, TimingUpdateOnDemand); }
void DocumentAnimations::serviceOnAnimationFrame(Document& document, double monotonicAnimationStartTime) { updateAnimationTiming(document, monotonicAnimationStartTime); dispatchAnimationEvents(document); }
void DocumentAnimations::updateAnimationTimingIfNeeded(Document& document) { if (needsAnimationTimingUpdate(document)) updateAnimationTiming(document, TimingUpdateOnDemand); }
void DocumentAnimations::updateAnimationTimingForAnimationFrame(Document& document) { updateAnimationTiming(document, TimingUpdateForAnimationFrame); }