| Index: Source/core/animation/Animation.cpp
|
| diff --git a/Source/core/animation/Animation.cpp b/Source/core/animation/Animation.cpp
|
| index bf7e0262e533f82c5c48090f67cf9509995bb299..ff8f6444387acd9a8e39c09500e8d61159e57470 100644
|
| --- a/Source/core/animation/Animation.cpp
|
| +++ b/Source/core/animation/Animation.cpp
|
| @@ -46,39 +46,39 @@
|
|
|
| namespace WebCore {
|
|
|
| -PassRefPtr<Animation> Animation::create(PassRefPtr<Element> target, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Timing& timing, Priority priority, PassOwnPtr<EventDelegate> eventDelegate)
|
| +PassRefPtrWillBeRawPtr<Animation> Animation::create(PassRefPtr<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());
|
| 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());
|
| 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());
|
| UseCounter::count(element->document(), UseCounter::AnimationConstructorKeyframeListEffectNoTiming);
|
| @@ -89,27 +89,31 @@ Animation::Animation(PassRefPtr<Element> target, PassRefPtrWillBeRawPtr<Animatio
|
| : TimedItem(timing, eventDelegate)
|
| , m_target(target)
|
| , m_effect(effect)
|
| - , m_sampledEffect(0)
|
| + , m_sampledEffect(nullptr)
|
| , m_priority(priority)
|
| {
|
| }
|
|
|
| -void Animation::didAttach()
|
| +void Animation::attach(AnimationPlayer* player)
|
| {
|
| if (m_target) {
|
| - m_target->ensureActiveAnimations().players().add(player());
|
| + m_target->ensureActiveAnimations().players().add(player);
|
| m_target->setNeedsAnimationStyleRecalc();
|
| }
|
| + TimedItem::attach(player);
|
| }
|
|
|
| -void Animation::willDetach()
|
| +void Animation::detach()
|
| {
|
| if (m_target) {
|
| +#if !ENABLE(OILPAN)
|
| m_target->activeAnimations()->players().remove(player());
|
| +#endif
|
| m_target->setNeedsAnimationStyleRecalc();
|
| }
|
| if (m_sampledEffect)
|
| clearEffects();
|
| + TimedItem::detach();
|
| }
|
|
|
| void Animation::specifiedTimingChanged()
|
| @@ -137,7 +141,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.get()).add(sampledEffect.release());
|
| } else {
|
| @@ -152,8 +156,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();
|
| @@ -212,7 +216,7 @@ double Animation::calculateTimeToEffectChange(bool forwards, double localTime, d
|
| void Animation::notifySampledEffectRemovedFromAnimationStack()
|
| {
|
| ASSERT(m_sampledEffect);
|
| - m_sampledEffect = 0;
|
| + m_sampledEffect = nullptr;
|
| }
|
|
|
| bool Animation::isCandidateForAnimationOnCompositor() const
|
| @@ -274,4 +278,11 @@ void Animation::pauseAnimationForTestingOnCompositor(double pauseTime)
|
| CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(*m_target.get(), m_compositorAnimationIds[i], pauseTime);
|
| }
|
|
|
| +void Animation::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_effect);
|
| + visitor->trace(m_sampledEffect);
|
| + TimedItem::trace(visitor);
|
| +}
|
| +
|
| } // namespace WebCore
|
|
|