| Index: Source/core/animation/Animation.cpp
|
| diff --git a/Source/core/animation/Animation.cpp b/Source/core/animation/Animation.cpp
|
| index fd325c1cb714640d6a37f30e0c1aa9012b5c865f..d697b28d6292487020c0fa07da7d2250d5350abb 100644
|
| --- a/Source/core/animation/Animation.cpp
|
| +++ b/Source/core/animation/Animation.cpp
|
| @@ -46,41 +46,41 @@
|
|
|
| namespace WebCore {
|
|
|
| -PassRefPtr<Animation> Animation::create(Element* target, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Timing& timing, Priority priority, PassOwnPtr<EventDelegate> eventDelegate)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* target, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Timing& timing, Priority priority, PassOwnPtr<EventDelegate> eventDelegate)
|
| {
|
| - return adoptRef(new Animation(target, effect, timing, priority, eventDelegate));
|
| + return adoptRefWillBeNoop(new Animation(target, effect, timing, priority, eventDelegate));
|
| }
|
|
|
| -PassRefPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Dictionary& timingInputDictionary)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Dictionary& timingInputDictionary)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
|
| return create(element, effect, TimingInput::convert(timingInputDictionary));
|
| }
|
| -PassRefPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, double duration)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, double duration)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
|
| return create(element, effect, TimingInput::convert(duration));
|
| }
|
| -PassRefPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
|
| return create(element, effect, Timing());
|
| }
|
| -PassRefPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, const Dictionary& timingInputDictionary, ExceptionState& exceptionState)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, const Dictionary& timingInputDictionary, ExceptionState& exceptionState)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
|
| if (element)
|
| UseCounter::count(element->document(), UseCounter::AnimationConstructorKeyframeListEffectObjectTiming);
|
| return create(element, EffectInput::convert(element, keyframeDictionaryVector, exceptionState), TimingInput::convert(timingInputDictionary));
|
| }
|
| -PassRefPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, double duration, ExceptionState& exceptionState)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, double duration, ExceptionState& exceptionState)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
|
| if (element)
|
| UseCounter::count(element->document(), UseCounter::AnimationConstructorKeyframeListEffectDoubleTiming);
|
| return create(element, EffectInput::convert(element, keyframeDictionaryVector, exceptionState), TimingInput::convert(duration));
|
| }
|
| -PassRefPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, ExceptionState& exceptionState)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, ExceptionState& exceptionState)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
|
| if (element)
|
| @@ -92,7 +92,7 @@ Animation::Animation(Element* target, PassRefPtrWillBeRawPtr<AnimationEffect> ef
|
| : TimedItem(timing, eventDelegate)
|
| , m_target(target)
|
| , m_effect(effect)
|
| - , m_sampledEffect(0)
|
| + , m_sampledEffect(nullptr)
|
| , m_priority(priority)
|
| {
|
| if (m_target)
|
| @@ -105,20 +105,22 @@ Animation::~Animation()
|
| m_target->activeAnimations()->notifyAnimationDestroyed(this);
|
| }
|
|
|
| -void Animation::didAttach()
|
| +void Animation::attach(AnimationPlayer* player)
|
| {
|
| if (m_target) {
|
| - m_target->ensureActiveAnimations().addPlayer(player());
|
| + m_target->ensureActiveAnimations().addPlayer(player);
|
| m_target->setNeedsAnimationStyleRecalc();
|
| }
|
| + TimedItem::attach(player);
|
| }
|
|
|
| -void Animation::willDetach()
|
| +void Animation::detach()
|
| {
|
| if (m_target)
|
| m_target->activeAnimations()->removePlayer(player());
|
| if (m_sampledEffect)
|
| clearEffects();
|
| + TimedItem::detach();
|
| }
|
|
|
| void Animation::specifiedTimingChanged()
|
| @@ -150,7 +152,7 @@ void Animation::applyEffects()
|
| if (m_sampledEffect) {
|
| m_sampledEffect->setInterpolations(interpolations.release());
|
| } else if (!interpolations->isEmpty()) {
|
| - OwnPtr<SampledEffect> sampledEffect = SampledEffect::create(this, interpolations.release());
|
| + OwnPtrWillBeRawPtr<SampledEffect> sampledEffect = SampledEffect::create(this, interpolations.release());
|
| m_sampledEffect = sampledEffect.get();
|
| ensureAnimationStack(m_target).add(sampledEffect.release());
|
| } else {
|
| @@ -165,8 +167,8 @@ void Animation::clearEffects()
|
| ASSERT(player());
|
| ASSERT(m_sampledEffect);
|
|
|
| - m_sampledEffect->clear();
|
| - m_sampledEffect = 0;
|
| + m_sampledEffect->detach();
|
| + m_sampledEffect = nullptr;
|
| cancelAnimationOnCompositor();
|
| m_target->setNeedsAnimationStyleRecalc();
|
| invalidate();
|
| @@ -225,7 +227,7 @@ double Animation::calculateTimeToEffectChange(bool forwards, double localTime, d
|
| void Animation::notifySampledEffectRemovedFromAnimationStack()
|
| {
|
| ASSERT(m_sampledEffect);
|
| - m_sampledEffect = 0;
|
| + m_sampledEffect = nullptr;
|
| }
|
|
|
| void Animation::notifyElementDestroyed()
|
| @@ -236,9 +238,9 @@ void Animation::notifyElementDestroyed()
|
| m_target = 0;
|
| clearEventDelegate();
|
| SampledEffect* sampledEffect = m_sampledEffect;
|
| - m_sampledEffect = 0;
|
| + m_sampledEffect = nullptr;
|
| if (sampledEffect)
|
| - sampledEffect->clear();
|
| + sampledEffect->detach();
|
| }
|
|
|
| bool Animation::isCandidateForAnimationOnCompositor() const
|
| @@ -300,4 +302,11 @@ void Animation::pauseAnimationForTestingOnCompositor(double pauseTime)
|
| CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(*m_target, m_compositorAnimationIds[i], pauseTime);
|
| }
|
|
|
| +void Animation::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_effect);
|
| + visitor->trace(m_sampledEffect);
|
| + TimedItem::trace(visitor);
|
| +}
|
| +
|
| } // namespace WebCore
|
|
|