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

Unified Diff: Source/core/animation/css/CSSAnimations.cpp

Issue 1113173003: Web Animations: Update naming to reflect spec changes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: No, really. Created 5 years, 7 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
« no previous file with comments | « Source/core/animation/css/CSSAnimations.h ('k') | Source/core/core.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/animation/css/CSSAnimations.cpp
diff --git a/Source/core/animation/css/CSSAnimations.cpp b/Source/core/animation/css/CSSAnimations.cpp
index d4f37e2066b7dc5272ac283108f41e874dccf23e..b9c8aecfae8d8e719abdb44c52920a41c7f74488 100644
--- a/Source/core/animation/css/CSSAnimations.cpp
+++ b/Source/core/animation/css/CSSAnimations.cpp
@@ -32,7 +32,7 @@
#include "core/animation/css/CSSAnimations.h"
#include "core/StylePropertyShorthand.h"
-#include "core/animation/AnimationPlayer.h"
+#include "core/animation/Animation.h"
#include "core/animation/AnimationTimeline.h"
#include "core/animation/CompositorAnimations.h"
#include "core/animation/DeferredLegacyStyleInterpolation.h"
@@ -183,19 +183,19 @@ CSSAnimations::CSSAnimations()
{
}
-const AtomicString CSSAnimations::getAnimationNameForInspector(const AnimationPlayer& player)
+const AtomicString CSSAnimations::getAnimationNameForInspector(const Animation& animation)
{
for (const auto& it : m_animations) {
- if (it.value->player->sequenceNumber() == player.sequenceNumber())
+ if (it.value->animation->sequenceNumber() == animation.sequenceNumber())
return it.key;
}
return nullAtom;
}
-bool CSSAnimations::isTransitionAnimationForInspector(const AnimationPlayer& player) const
+bool CSSAnimations::isTransitionAnimationForInspector(const Animation& animation) const
{
for (const auto& it : m_transitions) {
- if (it.value.player->sequenceNumber() == player.sequenceNumber())
+ if (it.value.animation->sequenceNumber() == animation.sequenceNumber())
return true;
}
return false;
@@ -257,23 +257,23 @@ void CSSAnimations::calculateAnimationUpdate(CSSAnimationUpdate* update, const E
inactive.remove(animationName);
const RunningAnimation* runningAnimation = existing->value.get();
- AnimationPlayer* player = runningAnimation->player.get();
+ Animation* animation = runningAnimation->animation.get();
if (keyframesRule != runningAnimation->styleRule || keyframesRule->version() != runningAnimation->styleRuleVersion || runningAnimation->specifiedTiming != specifiedTiming) {
ASSERT(!isAnimationStyleChange);
- update->updateAnimation(animationName, player, InertAnimation::create(
+ update->updateAnimation(animationName, animation, InertAnimation::create(
createKeyframeEffect(resolver, animatingElement, element, &style, parentStyle, animationName, keyframeTimingFunction.get()),
- timing, isPaused, player->unlimitedCurrentTimeInternal()), specifiedTiming, keyframesRule);
- } else if (!isAnimationStyleChange && player->source() && player->source()->isAnimation()) {
- AnimationEffect* effect = toAnimation(player->source())->effect();
+ timing, isPaused, animation->unlimitedCurrentTimeInternal()), specifiedTiming, keyframesRule);
+ } else if (!isAnimationStyleChange && animation->source() && animation->source()->isAnimation()) {
+ EffectModel* effect = toKeyframeEffect(animation->source())->effect();
if (effect && effect->isKeyframeEffectModel()) {
KeyframeEffectModelBase* keyframeEffect = toKeyframeEffectModelBase(effect);
if (keyframeEffect->hasSyntheticKeyframes())
- update->updateAnimationStyle(player, keyframeEffect, animatingElement->layoutObject(), style);
+ update->updateAnimationStyle(animation, keyframeEffect, animatingElement->layoutObject(), style);
}
}
- if (isPaused != player->paused()) {
+ if (isPaused != animation->paused()) {
ASSERT(!isAnimationStyleChange);
update->toggleAnimationPaused(animationName);
}
@@ -292,7 +292,7 @@ void CSSAnimations::calculateAnimationUpdate(CSSAnimationUpdate* update, const E
ASSERT(inactive.isEmpty() || cssAnimations);
for (const AtomicString& animationName : inactive) {
ASSERT(!isAnimationStyleChange);
- update->cancelAnimation(animationName, *cssAnimations->m_animations.get(animationName)->player);
+ update->cancelAnimation(animationName, *cssAnimations->m_animations.get(animationName)->animation);
}
}
@@ -313,26 +313,26 @@ void CSSAnimations::maybeApplyPendingUpdate(Element* element)
DisableCompositingQueryAsserts disabler;
for (const AtomicString& animationName : update->cancelledAnimationNames()) {
- RefPtrWillBeRawPtr<AnimationPlayer> player = m_animations.take(animationName)->player;
- player->cancel();
- player->update(TimingUpdateOnDemand);
+ RefPtrWillBeRawPtr<Animation> animation = m_animations.take(animationName)->animation;
+ animation->cancel();
+ animation->update(TimingUpdateOnDemand);
}
for (const AtomicString& animationName : update->animationsWithPauseToggled()) {
- AnimationPlayer* player = m_animations.get(animationName)->player.get();
- if (player->paused())
- player->unpause();
+ Animation* animation = m_animations.get(animationName)->animation.get();
+ if (animation->paused())
+ animation->unpause();
else
- player->pause();
- if (player->outdated())
- player->update(TimingUpdateOnDemand);
+ animation->pause();
+ if (animation->outdated())
+ animation->update(TimingUpdateOnDemand);
}
for (const auto& entry : update->animationsWithUpdates()) {
- Animation* animation = toAnimation(entry.player->source());
+ KeyframeEffect* effect = toKeyframeEffect(entry.animation->source());
- animation->setEffect(entry.animation->effect());
- animation->updateSpecifiedTiming(entry.animation->specifiedTiming());
+ effect->setEffect(entry.effect->effect());
+ effect->updateSpecifiedTiming(entry.effect->specifiedTiming());
m_animations.find(entry.name)->value->update(entry);
}
@@ -351,22 +351,22 @@ void CSSAnimations::maybeApplyPendingUpdate(Element* element)
if (styleUpdate.snapshot.webkitFilter)
updated |= styleUpdate.effect->updateNeutralKeyframeAnimatableValues(CSSPropertyWebkitFilter, styleUpdate.snapshot.webkitFilter);
if (updated) {
- styleUpdate.player->setOutdated();
- styleUpdate.player->setCompositorPending(true);
+ styleUpdate.animation->setOutdated();
+ styleUpdate.animation->setCompositorPending(true);
}
}
for (const auto& entry : update->newAnimations()) {
- const InertAnimation* inertAnimation = entry.animation.get();
+ const InertAnimation* inertAnimation = entry.effect.get();
OwnPtrWillBeRawPtr<AnimationEventDelegate> eventDelegate = adoptPtrWillBeNoop(new AnimationEventDelegate(element, entry.name));
- RefPtrWillBeRawPtr<Animation> animation = Animation::create(element, inertAnimation->effect(), inertAnimation->specifiedTiming(), Animation::DefaultPriority, eventDelegate.release());
- animation->setName(inertAnimation->name());
- RefPtrWillBeRawPtr<AnimationPlayer> player = element->document().timeline().play(animation.get());
+ RefPtrWillBeRawPtr<KeyframeEffect> effect = KeyframeEffect::create(element, inertAnimation->effect(), inertAnimation->specifiedTiming(), KeyframeEffect::DefaultPriority, eventDelegate.release());
+ effect->setName(inertAnimation->name());
+ RefPtrWillBeRawPtr<Animation> animation = element->document().timeline().play(effect.get());
if (inertAnimation->paused())
- player->pause();
- player->update(TimingUpdateOnDemand);
+ animation->pause();
+ animation->update(TimingUpdateOnDemand);
- m_animations.set(entry.name, adoptRefWillBeNoop(new RunningAnimation(player, entry)));
+ m_animations.set(entry.name, adoptRefWillBeNoop(new RunningAnimation(animation, entry)));
}
// Transitions that are run on the compositor only update main-thread state
@@ -374,30 +374,30 @@ void CSSAnimations::maybeApplyPendingUpdate(Element* element)
// be when transitions are retargeted. Instead of triggering complete style
// recalculation, we find these cases by searching for new transitions that
// have matching cancelled animation property IDs on the compositor.
- WillBeHeapHashMap<CSSPropertyID, std::pair<RefPtrWillBeMember<Animation>, double>> retargetedCompositorTransitions;
+ WillBeHeapHashMap<CSSPropertyID, std::pair<RefPtrWillBeMember<KeyframeEffect>, double>> retargetedCompositorTransitions;
for (CSSPropertyID id : update->cancelledTransitions()) {
ASSERT(m_transitions.contains(id));
- RefPtrWillBeRawPtr<AnimationPlayer> player = m_transitions.take(id).player;
- Animation* animation = toAnimation(player->source());
- if (animation->hasActiveAnimationsOnCompositor(id) && update->newTransitions().find(id) != update->newTransitions().end() && !player->limited())
- retargetedCompositorTransitions.add(id, std::pair<RefPtrWillBeMember<Animation>, double>(animation, player->startTimeInternal()));
- player->cancel();
+ RefPtrWillBeRawPtr<Animation> animation = m_transitions.take(id).animation;
+ KeyframeEffect* effect = toKeyframeEffect(animation->source());
+ if (effect->hasActiveAnimationsOnCompositor(id) && update->newTransitions().find(id) != update->newTransitions().end() && !animation->limited())
+ retargetedCompositorTransitions.add(id, std::pair<RefPtrWillBeMember<KeyframeEffect>, double>(effect, animation->startTimeInternal()));
+ animation->cancel();
// after cancelation, transitions must be downgraded or they'll fail
// to be considered when retriggering themselves. This can happen if
- // the transition is captured through getAnimationPlayers then played.
- if (player->source() && player->source()->isAnimation())
- toAnimation(player->source())->downgradeToNormalAnimation();
- player->update(TimingUpdateOnDemand);
+ // the transition is captured through getAnimations then played.
+ if (animation->source() && animation->source()->isAnimation())
+ toKeyframeEffect(animation->source())->downgradeToNormal();
+ animation->update(TimingUpdateOnDemand);
}
for (CSSPropertyID id : update->finishedTransitions()) {
// This transition can also be cancelled and finished at the same time
if (m_transitions.contains(id)) {
- RefPtrWillBeRawPtr<AnimationPlayer> player = m_transitions.take(id).player;
+ RefPtrWillBeRawPtr<Animation> animation = m_transitions.take(id).animation;
// Transition must be downgraded
- if (player->source() && player->source()->isAnimation())
- toAnimation(player->source())->downgradeToNormalAnimation();
+ if (animation->source() && animation->source()->isAnimation())
+ toKeyframeEffect(animation->source())->downgradeToNormal();
}
}
@@ -409,14 +409,14 @@ void CSSAnimations::maybeApplyPendingUpdate(Element* element)
runningTransition.to = newTransition.to;
CSSPropertyID id = newTransition.id;
- InertAnimation* inertAnimation = newTransition.animation.get();
+ InertAnimation* inertAnimation = newTransition.effect.get();
OwnPtrWillBeRawPtr<TransitionEventDelegate> eventDelegate = adoptPtrWillBeNoop(new TransitionEventDelegate(element, newTransition.eventId));
- RefPtrWillBeRawPtr<AnimationEffect> effect = inertAnimation->effect();
+ RefPtrWillBeRawPtr<EffectModel> effect = inertAnimation->effect();
if (retargetedCompositorTransitions.contains(id)) {
- const std::pair<RefPtrWillBeMember<Animation>, double>& oldTransition = retargetedCompositorTransitions.get(id);
- RefPtrWillBeRawPtr<Animation> oldAnimation = oldTransition.first;
+ const std::pair<RefPtrWillBeMember<KeyframeEffect>, double>& oldTransition = retargetedCompositorTransitions.get(id);
+ RefPtrWillBeRawPtr<KeyframeEffect> oldAnimation = oldTransition.first;
double oldStartTime = oldTransition.second;
double inheritedTime = isNull(oldStartTime) ? 0 : element->document().timeline().currentTimeInternal() - oldStartTime;
@@ -440,11 +440,11 @@ void CSSAnimations::maybeApplyPendingUpdate(Element* element)
}
}
- RefPtrWillBeRawPtr<Animation> transition = Animation::create(element, effect, inertAnimation->specifiedTiming(), Animation::TransitionPriority, eventDelegate.release());
+ RefPtrWillBeRawPtr<KeyframeEffect> transition = KeyframeEffect::create(element, effect, inertAnimation->specifiedTiming(), KeyframeEffect::TransitionPriority, eventDelegate.release());
transition->setName(inertAnimation->name());
- RefPtrWillBeRawPtr<AnimationPlayer> player = element->document().timeline().play(transition.get());
- player->update(TimingUpdateOnDemand);
- runningTransition.player = player;
+ RefPtrWillBeRawPtr<Animation> animation = element->document().timeline().play(transition.get());
+ animation->update(TimingUpdateOnDemand);
+ runningTransition.animation = animation;
m_transitions.set(id, runningTransition);
ASSERT(id != CSSPropertyInvalid);
Platform::current()->histogramSparse("WebCore.Animation.CSSProperties", UseCounter::mapCSSPropertyIdToCSSSampleIdForHistogram(id));
@@ -575,9 +575,9 @@ void CSSAnimations::calculateTransitionUpdate(CSSAnimationUpdate* update, const
CSSPropertyID id = entry.key;
if (!anyTransitionHadTransitionAll && !animationStyleRecalc && !listedProperties.get(id)) {
// TODO: Figure out why this fails on Chrome OS login page. crbug.com/365507
- // ASSERT(player.playStateInternal() == AnimationPlayer::Finished || !(elementAnimations && elementAnimations->isAnimationStyleChange()));
+ // ASSERT(animation.playStateInternal() == Animation::Finished || !(elementAnimations && elementAnimations->isAnimationStyleChange()));
update->cancelTransition(id);
- } else if (entry.value.player->finishedInternal()) {
+ } else if (entry.value.animation->finishedInternal()) {
update->finishTransition(id);
}
}
@@ -587,13 +587,13 @@ void CSSAnimations::calculateTransitionUpdate(CSSAnimationUpdate* update, const
void CSSAnimations::cancel()
{
for (const auto& entry : m_animations) {
- entry.value->player->cancel();
- entry.value->player->update(TimingUpdateOnDemand);
+ entry.value->animation->cancel();
+ entry.value->animation->update(TimingUpdateOnDemand);
}
for (const auto& entry : m_transitions) {
- entry.value.player->cancel();
- entry.value.player->update(TimingUpdateOnDemand);
+ entry.value.animation->cancel();
+ entry.value.animation->update(TimingUpdateOnDemand);
}
m_animations.clear();
@@ -606,19 +606,19 @@ void CSSAnimations::calculateAnimationActiveInterpolations(CSSAnimationUpdate* u
ElementAnimations* elementAnimations = animatingElement ? animatingElement->elementAnimations() : nullptr;
AnimationStack* animationStack = elementAnimations ? &elementAnimations->defaultStack() : nullptr;
- if (update->newAnimations().isEmpty() && update->suppressedAnimationAnimationPlayers().isEmpty()) {
- ActiveInterpolationMap activeInterpolationsForAnimations(AnimationStack::activeInterpolations(animationStack, 0, 0, Animation::DefaultPriority, timelineCurrentTime));
+ if (update->newAnimations().isEmpty() && update->suppressedAnimationAnimations().isEmpty()) {
+ ActiveInterpolationMap activeInterpolationsForAnimations(AnimationStack::activeInterpolations(animationStack, 0, 0, KeyframeEffect::DefaultPriority, timelineCurrentTime));
update->adoptActiveInterpolationsForAnimations(activeInterpolationsForAnimations);
return;
}
- WillBeHeapVector<RawPtrWillBeMember<InertAnimation>> newAnimations;
+ WillBeHeapVector<RawPtrWillBeMember<InertAnimation>> newEffects;
for (const auto& newAnimation : update->newAnimations())
- newAnimations.append(newAnimation.animation.get());
+ newEffects.append(newAnimation.effect.get());
for (const auto& updatedAnimation : update->animationsWithUpdates())
- newAnimations.append(updatedAnimation.animation.get()); // Animations with updates use a temporary InertAnimation for the current frame.
+ newEffects.append(updatedAnimation.effect.get()); // Animations with updates use a temporary InertAnimation for the current frame.
- ActiveInterpolationMap activeInterpolationsForAnimations(AnimationStack::activeInterpolations(animationStack, &newAnimations, &update->suppressedAnimationAnimationPlayers(), Animation::DefaultPriority, timelineCurrentTime));
+ ActiveInterpolationMap activeInterpolationsForAnimations(AnimationStack::activeInterpolations(animationStack, &newEffects, &update->suppressedAnimationAnimations(), KeyframeEffect::DefaultPriority, timelineCurrentTime));
update->adoptActiveInterpolationsForAnimations(activeInterpolationsForAnimations);
}
@@ -629,23 +629,23 @@ void CSSAnimations::calculateTransitionActiveInterpolations(CSSAnimationUpdate*
ActiveInterpolationMap activeInterpolationsForTransitions;
if (update->newTransitions().isEmpty() && update->cancelledTransitions().isEmpty()) {
- activeInterpolationsForTransitions = AnimationStack::activeInterpolations(animationStack, 0, 0, Animation::TransitionPriority, timelineCurrentTime);
+ activeInterpolationsForTransitions = AnimationStack::activeInterpolations(animationStack, 0, 0, KeyframeEffect::TransitionPriority, timelineCurrentTime);
} else {
WillBeHeapVector<RawPtrWillBeMember<InertAnimation>> newTransitions;
for (const auto& entry : update->newTransitions())
- newTransitions.append(entry.value.animation.get());
+ newTransitions.append(entry.value.effect.get());
- WillBeHeapHashSet<RawPtrWillBeMember<const AnimationPlayer>> cancelledAnimationPlayers;
+ WillBeHeapHashSet<RawPtrWillBeMember<const Animation>> cancelledAnimations;
if (!update->cancelledTransitions().isEmpty()) {
ASSERT(elementAnimations);
const TransitionMap& transitionMap = elementAnimations->cssAnimations().m_transitions;
for (CSSPropertyID id : update->cancelledTransitions()) {
ASSERT(transitionMap.contains(id));
- cancelledAnimationPlayers.add(transitionMap.get(id).player.get());
+ cancelledAnimations.add(transitionMap.get(id).animation.get());
}
}
- activeInterpolationsForTransitions = AnimationStack::activeInterpolations(animationStack, &newTransitions, &cancelledAnimationPlayers, Animation::TransitionPriority, timelineCurrentTime);
+ activeInterpolationsForTransitions = AnimationStack::activeInterpolations(animationStack, &newTransitions, &cancelledAnimations, KeyframeEffect::TransitionPriority, timelineCurrentTime);
}
// Properties being animated by animations don't get values from transitions applied.
@@ -670,25 +670,25 @@ void CSSAnimations::AnimationEventDelegate::maybeDispatch(Document::ListenerType
}
}
-bool CSSAnimations::AnimationEventDelegate::requiresIterationEvents(const AnimationNode& animationNode)
+bool CSSAnimations::AnimationEventDelegate::requiresIterationEvents(const AnimationEffect& animationNode)
{
return document().hasListenerType(Document::ANIMATIONITERATION_LISTENER);
}
-void CSSAnimations::AnimationEventDelegate::onEventCondition(const AnimationNode& animationNode)
+void CSSAnimations::AnimationEventDelegate::onEventCondition(const AnimationEffect& animationNode)
{
- const AnimationNode::Phase currentPhase = animationNode.phase();
+ const AnimationEffect::Phase currentPhase = animationNode.phase();
const double currentIteration = animationNode.currentIteration();
if (m_previousPhase != currentPhase
- && (currentPhase == AnimationNode::PhaseActive || currentPhase == AnimationNode::PhaseAfter)
- && (m_previousPhase == AnimationNode::PhaseNone || m_previousPhase == AnimationNode::PhaseBefore)) {
+ && (currentPhase == AnimationEffect::PhaseActive || currentPhase == AnimationEffect::PhaseAfter)
+ && (m_previousPhase == AnimationEffect::PhaseNone || m_previousPhase == AnimationEffect::PhaseBefore)) {
const double startDelay = animationNode.specifiedTiming().startDelay;
const double elapsedTime = startDelay < 0 ? -startDelay : 0;
maybeDispatch(Document::ANIMATIONSTART_LISTENER, EventTypeNames::animationstart, elapsedTime);
}
- if (currentPhase == AnimationNode::PhaseActive && m_previousPhase == currentPhase && m_previousIteration != currentIteration) {
+ if (currentPhase == AnimationEffect::PhaseActive && m_previousPhase == currentPhase && m_previousIteration != currentIteration) {
// We fire only a single event for all iterations thast terminate
// between a single pair of samples. See http://crbug.com/275263. For
// compatibility with the existing implementation, this event uses
@@ -698,7 +698,7 @@ void CSSAnimations::AnimationEventDelegate::onEventCondition(const AnimationNode
maybeDispatch(Document::ANIMATIONITERATION_LISTENER, EventTypeNames::animationiteration, elapsedTime);
}
- if (currentPhase == AnimationNode::PhaseAfter && m_previousPhase != AnimationNode::PhaseAfter)
+ if (currentPhase == AnimationEffect::PhaseAfter && m_previousPhase != AnimationEffect::PhaseAfter)
maybeDispatch(Document::ANIMATIONEND_LISTENER, EventTypeNames::animationend, animationNode.activeDurationInternal());
m_previousPhase = currentPhase;
@@ -708,7 +708,7 @@ void CSSAnimations::AnimationEventDelegate::onEventCondition(const AnimationNode
DEFINE_TRACE(CSSAnimations::AnimationEventDelegate)
{
visitor->trace(m_animationTarget);
- AnimationNode::EventDelegate::trace(visitor);
+ AnimationEffect::EventDelegate::trace(visitor);
}
EventTarget* CSSAnimations::TransitionEventDelegate::eventTarget() const
@@ -716,10 +716,10 @@ EventTarget* CSSAnimations::TransitionEventDelegate::eventTarget() const
return EventPath::eventTargetRespectingTargetRules(*m_transitionTarget);
}
-void CSSAnimations::TransitionEventDelegate::onEventCondition(const AnimationNode& animationNode)
+void CSSAnimations::TransitionEventDelegate::onEventCondition(const AnimationEffect& animationNode)
{
- const AnimationNode::Phase currentPhase = animationNode.phase();
- if (currentPhase == AnimationNode::PhaseAfter && currentPhase != m_previousPhase && document().hasListenerType(Document::TRANSITIONEND_LISTENER)) {
+ const AnimationEffect::Phase currentPhase = animationNode.phase();
+ if (currentPhase == AnimationEffect::PhaseAfter && currentPhase != m_previousPhase && document().hasListenerType(Document::TRANSITIONEND_LISTENER)) {
String propertyName = getPropertyNameString(m_property);
const Timing& timing = animationNode.specifiedTiming();
double elapsedTime = timing.iterationDuration;
@@ -736,7 +736,7 @@ void CSSAnimations::TransitionEventDelegate::onEventCondition(const AnimationNod
DEFINE_TRACE(CSSAnimations::TransitionEventDelegate)
{
visitor->trace(m_transitionTarget);
- AnimationNode::EventDelegate::trace(visitor);
+ AnimationEffect::EventDelegate::trace(visitor);
}
const StylePropertyShorthand& CSSAnimations::propertiesForTransitionAll()
@@ -761,7 +761,7 @@ const StylePropertyShorthand& CSSAnimations::propertiesForTransitionAll()
return propertyShorthand;
}
-// Animation properties are not allowed to be affected by Web Animations.
+// KeyframeEffect properties are not allowed to be affected by Web Animations.
// http://dev.w3.org/fxtf/web-animations/#not-animatable
bool CSSAnimations::isAllowedAnimation(CSSPropertyID property)
{
@@ -804,7 +804,7 @@ DEFINE_TRACE(CSSAnimationUpdate)
visitor->trace(m_activeInterpolationsForAnimations);
visitor->trace(m_activeInterpolationsForTransitions);
visitor->trace(m_newAnimations);
- visitor->trace(m_suppressedAnimationPlayers);
+ visitor->trace(m_suppressedAnimations);
visitor->trace(m_animationsWithUpdates);
visitor->trace(m_animationsWithStyleUpdates);
#endif
« no previous file with comments | « Source/core/animation/css/CSSAnimations.h ('k') | Source/core/core.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698