| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 inactive.remove(animationName); | 261 inactive.remove(animationName); |
| 262 | 262 |
| 263 const RunningAnimation* runningAnimation = existing->value.g
et(); | 263 const RunningAnimation* runningAnimation = existing->value.g
et(); |
| 264 Animation* animation = runningAnimation->animation.get(); | 264 Animation* animation = runningAnimation->animation.get(); |
| 265 | 265 |
| 266 if (keyframesRule != runningAnimation->styleRule || keyframe
sRule->version() != runningAnimation->styleRuleVersion || runningAnimation->spec
ifiedTiming != specifiedTiming) { | 266 if (keyframesRule != runningAnimation->styleRule || keyframe
sRule->version() != runningAnimation->styleRuleVersion || runningAnimation->spec
ifiedTiming != specifiedTiming) { |
| 267 ASSERT(!isAnimationStyleChange); | 267 ASSERT(!isAnimationStyleChange); |
| 268 update.updateAnimation(animationName, animation, InertEf
fect::create( | 268 update.updateAnimation(animationName, animation, InertEf
fect::create( |
| 269 createKeyframeEffectModel(resolver, animatingElement
, element, &style, parentStyle, animationName, keyframeTimingFunction.get(), i), | 269 createKeyframeEffectModel(resolver, animatingElement
, element, &style, parentStyle, animationName, keyframeTimingFunction.get(), i), |
| 270 timing, isPaused, animation->unlimitedCurrentTimeInt
ernal()), specifiedTiming, keyframesRule); | 270 timing, isPaused, animation->unlimitedCurrentTimeInt
ernal()), specifiedTiming, keyframesRule); |
| 271 } else if (!isAnimationStyleChange && animation->effect() &&
animation->effect()->isAnimation()) { | 271 } else if (!isAnimationStyleChange && animation->effect() &&
animation->effect()->isKeyframeEffect()) { |
| 272 EffectModel* model = toKeyframeEffect(animation->effect(
))->model(); | 272 EffectModel* model = toKeyframeEffect(animation->effect(
))->model(); |
| 273 if (model && model->isKeyframeEffectModel()) { | 273 if (model && model->isKeyframeEffectModel()) { |
| 274 KeyframeEffectModelBase* keyframeEffect = toKeyframe
EffectModelBase(model); | 274 KeyframeEffectModelBase* keyframeEffect = toKeyframe
EffectModelBase(model); |
| 275 if (keyframeEffect->hasSyntheticKeyframes()) | 275 if (keyframeEffect->hasSyntheticKeyframes()) |
| 276 update.updateAnimationStyle(animation, keyframeE
ffect, animatingElement->layoutObject(), style); | 276 update.updateAnimationStyle(animation, keyframeE
ffect, animatingElement->layoutObject(), style); |
| 277 } | 277 } |
| 278 } | 278 } |
| 279 | 279 |
| 280 if (isPaused != animation->paused()) { | 280 if (isPaused != animation->paused()) { |
| 281 ASSERT(!isAnimationStyleChange); | 281 ASSERT(!isAnimationStyleChange); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 ASSERT(m_transitions.contains(id)); | 382 ASSERT(m_transitions.contains(id)); |
| 383 | 383 |
| 384 Animation* animation = m_transitions.take(id).animation; | 384 Animation* animation = m_transitions.take(id).animation; |
| 385 KeyframeEffect* effect = toKeyframeEffect(animation->effect()); | 385 KeyframeEffect* effect = toKeyframeEffect(animation->effect()); |
| 386 if (effect->hasActiveAnimationsOnCompositor(id) && m_pendingUpdate.newTr
ansitions().find(id) != m_pendingUpdate.newTransitions().end() && !animation->li
mited()) | 386 if (effect->hasActiveAnimationsOnCompositor(id) && m_pendingUpdate.newTr
ansitions().find(id) != m_pendingUpdate.newTransitions().end() && !animation->li
mited()) |
| 387 retargetedCompositorTransitions.add(id, std::pair<KeyframeEffect*, d
ouble>(effect, animation->startTimeInternal())); | 387 retargetedCompositorTransitions.add(id, std::pair<KeyframeEffect*, d
ouble>(effect, animation->startTimeInternal())); |
| 388 animation->cancel(); | 388 animation->cancel(); |
| 389 // after cancelation, transitions must be downgraded or they'll fail | 389 // after cancelation, transitions must be downgraded or they'll fail |
| 390 // to be considered when retriggering themselves. This can happen if | 390 // to be considered when retriggering themselves. This can happen if |
| 391 // the transition is captured through getAnimations then played. | 391 // the transition is captured through getAnimations then played. |
| 392 if (animation->effect() && animation->effect()->isAnimation()) | 392 if (animation->effect() && animation->effect()->isKeyframeEffect()) |
| 393 toKeyframeEffect(animation->effect())->downgradeToNormal(); | 393 toKeyframeEffect(animation->effect())->downgradeToNormal(); |
| 394 animation->update(TimingUpdateOnDemand); | 394 animation->update(TimingUpdateOnDemand); |
| 395 } | 395 } |
| 396 | 396 |
| 397 for (CSSPropertyID id : m_pendingUpdate.finishedTransitions()) { | 397 for (CSSPropertyID id : m_pendingUpdate.finishedTransitions()) { |
| 398 // This transition can also be cancelled and finished at the same time | 398 // This transition can also be cancelled and finished at the same time |
| 399 if (m_transitions.contains(id)) { | 399 if (m_transitions.contains(id)) { |
| 400 Animation* animation = m_transitions.take(id).animation; | 400 Animation* animation = m_transitions.take(id).animation; |
| 401 // Transition must be downgraded | 401 // Transition must be downgraded |
| 402 if (animation->effect() && animation->effect()->isAnimation()) | 402 if (animation->effect() && animation->effect()->isKeyframeEffect()) |
| 403 toKeyframeEffect(animation->effect())->downgradeToNormal(); | 403 toKeyframeEffect(animation->effect())->downgradeToNormal(); |
| 404 } | 404 } |
| 405 } | 405 } |
| 406 | 406 |
| 407 for (const auto& entry : m_pendingUpdate.newTransitions()) { | 407 for (const auto& entry : m_pendingUpdate.newTransitions()) { |
| 408 const CSSAnimationUpdate::NewTransition& newTransition = entry.value; | 408 const CSSAnimationUpdate::NewTransition& newTransition = entry.value; |
| 409 | 409 |
| 410 RunningTransition runningTransition; | 410 RunningTransition runningTransition; |
| 411 runningTransition.from = newTransition.from; | 411 runningTransition.from = newTransition.from; |
| 412 runningTransition.to = newTransition.to; | 412 runningTransition.to = newTransition.to; |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 { | 796 { |
| 797 visitor->trace(m_transitions); | 797 visitor->trace(m_transitions); |
| 798 visitor->trace(m_pendingUpdate); | 798 visitor->trace(m_pendingUpdate); |
| 799 visitor->trace(m_animations); | 799 visitor->trace(m_animations); |
| 800 #if ENABLE(OILPAN) | 800 #if ENABLE(OILPAN) |
| 801 visitor->trace(m_previousActiveInterpolationsForAnimations); | 801 visitor->trace(m_previousActiveInterpolationsForAnimations); |
| 802 #endif | 802 #endif |
| 803 } | 803 } |
| 804 | 804 |
| 805 } // namespace blink | 805 } // namespace blink |
| OLD | NEW |