示例#1
0
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);
        }
    }
}
示例#3
0
void DocumentAnimations::updateOutdatedAnimationPlayersIfNeeded(Document& document)
{
    if (needsOutdatedAnimationPlayerUpdate(document))
        updateAnimationTiming(document, TimingUpdateOnDemand);
}
示例#4
0
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);
}
示例#6
0
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);
}