| 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 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 // have matching cancelled animation property IDs on the compositor. | 391 // have matching cancelled animation property IDs on the compositor. |
| 392 WillBeHeapHashMap<CSSPropertyID, std::pair<RefPtrWillBeMember<Animation>, do
uble>> retargetedCompositorTransitions; | 392 WillBeHeapHashMap<CSSPropertyID, std::pair<RefPtrWillBeMember<Animation>, do
uble>> retargetedCompositorTransitions; |
| 393 for (CSSPropertyID id : update->cancelledTransitions()) { | 393 for (CSSPropertyID id : update->cancelledTransitions()) { |
| 394 ASSERT(m_transitions.contains(id)); | 394 ASSERT(m_transitions.contains(id)); |
| 395 | 395 |
| 396 RefPtrWillBeRawPtr<AnimationPlayer> player = m_transitions.take(id).play
er; | 396 RefPtrWillBeRawPtr<AnimationPlayer> player = m_transitions.take(id).play
er; |
| 397 Animation* animation = toAnimation(player->source()); | 397 Animation* animation = toAnimation(player->source()); |
| 398 if (animation->hasActiveAnimationsOnCompositor(id) && update->newTransit
ions().find(id) != update->newTransitions().end() && !player->limited()) | 398 if (animation->hasActiveAnimationsOnCompositor(id) && update->newTransit
ions().find(id) != update->newTransitions().end() && !player->limited()) |
| 399 retargetedCompositorTransitions.add(id, std::pair<RefPtrWillBeMember
<Animation>, double>(animation, player->startTimeInternal())); | 399 retargetedCompositorTransitions.add(id, std::pair<RefPtrWillBeMember
<Animation>, double>(animation, player->startTimeInternal())); |
| 400 player->cancel(); | 400 player->cancel(); |
| 401 // after cancelation, transitions must be downgraded or they'll fail |
| 402 // to be considered when retriggering themselves. This can happen if |
| 403 // the transition is captured through getAnimationPlayers then played. |
| 404 if (player->source() && player->source()->isAnimation()) |
| 405 toAnimation(player->source())->downgradeToNormalAnimation(); |
| 401 player->update(TimingUpdateOnDemand); | 406 player->update(TimingUpdateOnDemand); |
| 402 } | 407 } |
| 403 | 408 |
| 404 for (CSSPropertyID id : update->finishedTransitions()) { | 409 for (CSSPropertyID id : update->finishedTransitions()) { |
| 405 // This transition can also be cancelled and finished at the same time | 410 // This transition can also be cancelled and finished at the same time |
| 406 if (m_transitions.contains(id)) | 411 if (m_transitions.contains(id)) { |
| 407 m_transitions.take(id); | 412 RefPtrWillBeRawPtr<AnimationPlayer> player = m_transitions.take(id).
player; |
| 413 // Transition must be downgraded |
| 414 if (player->source() && player->source()->isAnimation()) |
| 415 toAnimation(player->source())->downgradeToNormalAnimation(); |
| 416 } |
| 408 } | 417 } |
| 409 | 418 |
| 410 for (const auto& entry : update->newTransitions()) { | 419 for (const auto& entry : update->newTransitions()) { |
| 411 const CSSAnimationUpdate::NewTransition& newTransition = entry.value; | 420 const CSSAnimationUpdate::NewTransition& newTransition = entry.value; |
| 412 | 421 |
| 413 RunningTransition runningTransition; | 422 RunningTransition runningTransition; |
| 414 runningTransition.from = newTransition.from; | 423 runningTransition.from = newTransition.from; |
| 415 runningTransition.to = newTransition.to; | 424 runningTransition.to = newTransition.to; |
| 416 | 425 |
| 417 CSSPropertyID id = newTransition.id; | 426 CSSPropertyID id = newTransition.id; |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 824 visitor->trace(m_activeInterpolationsForAnimations); | 833 visitor->trace(m_activeInterpolationsForAnimations); |
| 825 visitor->trace(m_activeInterpolationsForTransitions); | 834 visitor->trace(m_activeInterpolationsForTransitions); |
| 826 visitor->trace(m_newAnimations); | 835 visitor->trace(m_newAnimations); |
| 827 visitor->trace(m_suppressedAnimationPlayers); | 836 visitor->trace(m_suppressedAnimationPlayers); |
| 828 visitor->trace(m_animationsWithUpdates); | 837 visitor->trace(m_animationsWithUpdates); |
| 829 visitor->trace(m_animationsWithStyleUpdates); | 838 visitor->trace(m_animationsWithStyleUpdates); |
| 830 #endif | 839 #endif |
| 831 } | 840 } |
| 832 | 841 |
| 833 } // namespace blink | 842 } // namespace blink |
| OLD | NEW |