| 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 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 if (player->paused()) | 318 if (player->paused()) |
| 319 player->unpause(); | 319 player->unpause(); |
| 320 else | 320 else |
| 321 player->pause(); | 321 player->pause(); |
| 322 if (player->outdated()) | 322 if (player->outdated()) |
| 323 player->update(TimingUpdateOnDemand); | 323 player->update(TimingUpdateOnDemand); |
| 324 } | 324 } |
| 325 | 325 |
| 326 for (WillBeHeapVector<CSSAnimationUpdate::NewAnimation>::const_iterator iter
= update->newAnimations().begin(); iter != update->newAnimations().end(); ++ite
r) { | 326 for (WillBeHeapVector<CSSAnimationUpdate::NewAnimation>::const_iterator iter
= update->newAnimations().begin(); iter != update->newAnimations().end(); ++ite
r) { |
| 327 const InertAnimation* inertAnimation = iter->animation.get(); | 327 const InertAnimation* inertAnimation = iter->animation.get(); |
| 328 OwnPtr<AnimationEventDelegate> eventDelegate = adoptPtr(new AnimationEve
ntDelegate(element, iter->name)); | 328 OwnPtrWillBeRawPtr<AnimationEventDelegate> eventDelegate = adoptPtrWillB
eNoop(new AnimationEventDelegate(element, iter->name)); |
| 329 RefPtrWillBeRawPtr<Animation> animation = Animation::create(element, ine
rtAnimation->effect(), inertAnimation->specifiedTiming(), Animation::DefaultPrio
rity, eventDelegate.release()); | 329 RefPtrWillBeRawPtr<Animation> animation = Animation::create(element, ine
rtAnimation->effect(), inertAnimation->specifiedTiming(), Animation::DefaultPrio
rity, eventDelegate.release()); |
| 330 RefPtrWillBeRawPtr<AnimationPlayer> player = element->document().timelin
e().createAnimationPlayer(animation.get()); | 330 RefPtrWillBeRawPtr<AnimationPlayer> player = element->document().timelin
e().createAnimationPlayer(animation.get()); |
| 331 element->document().compositorPendingAnimations().add(player.get()); | 331 element->document().compositorPendingAnimations().add(player.get()); |
| 332 if (inertAnimation->paused()) | 332 if (inertAnimation->paused()) |
| 333 player->pause(); | 333 player->pause(); |
| 334 player->update(TimingUpdateOnDemand); | 334 player->update(TimingUpdateOnDemand); |
| 335 m_animations.set(iter->name, player.get()); | 335 m_animations.set(iter->name, player.get()); |
| 336 } | 336 } |
| 337 | 337 |
| 338 // Transitions that are run on the compositor only update main-thread state | 338 // Transitions that are run on the compositor only update main-thread state |
| (...skipping 16 matching lines...) Expand all Loading... |
| 355 | 355 |
| 356 for (CSSAnimationUpdate::NewTransitionMap::const_iterator iter = update->new
Transitions().begin(); iter != update->newTransitions().end(); ++iter) { | 356 for (CSSAnimationUpdate::NewTransitionMap::const_iterator iter = update->new
Transitions().begin(); iter != update->newTransitions().end(); ++iter) { |
| 357 const CSSAnimationUpdate::NewTransition& newTransition = iter->value; | 357 const CSSAnimationUpdate::NewTransition& newTransition = iter->value; |
| 358 | 358 |
| 359 RunningTransition runningTransition; | 359 RunningTransition runningTransition; |
| 360 runningTransition.from = newTransition.from; | 360 runningTransition.from = newTransition.from; |
| 361 runningTransition.to = newTransition.to; | 361 runningTransition.to = newTransition.to; |
| 362 | 362 |
| 363 CSSPropertyID id = newTransition.id; | 363 CSSPropertyID id = newTransition.id; |
| 364 InertAnimation* inertAnimation = newTransition.animation.get(); | 364 InertAnimation* inertAnimation = newTransition.animation.get(); |
| 365 OwnPtr<TransitionEventDelegate> eventDelegate = adoptPtr(new TransitionE
ventDelegate(element, newTransition.eventId)); | 365 OwnPtrWillBeRawPtr<TransitionEventDelegate> eventDelegate = adoptPtrWill
BeNoop(new TransitionEventDelegate(element, newTransition.eventId)); |
| 366 | 366 |
| 367 RefPtrWillBeRawPtr<AnimationEffect> effect = inertAnimation->effect(); | 367 RefPtrWillBeRawPtr<AnimationEffect> effect = inertAnimation->effect(); |
| 368 | 368 |
| 369 if (retargetedCompositorTransitions.contains(id)) { | 369 if (retargetedCompositorTransitions.contains(id)) { |
| 370 const std::pair<RefPtrWillBeMember<Animation>, double>& oldTransitio
n = retargetedCompositorTransitions.get(id); | 370 const std::pair<RefPtrWillBeMember<Animation>, double>& oldTransitio
n = retargetedCompositorTransitions.get(id); |
| 371 RefPtrWillBeRawPtr<Animation> oldAnimation = oldTransition.first; | 371 RefPtrWillBeRawPtr<Animation> oldAnimation = oldTransition.first; |
| 372 double oldStartTime = oldTransition.second; | 372 double oldStartTime = oldTransition.second; |
| 373 double inheritedTime = isNull(oldStartTime) ? 0 : element->document(
).timeline().currentTimeInternal() - oldStartTime; | 373 double inheritedTime = isNull(oldStartTime) ? 0 : element->document(
).timeline().currentTimeInternal() - oldStartTime; |
| 374 | 374 |
| 375 AnimatableValueKeyframeEffectModel* oldEffect = toAnimatableValueKey
frameEffectModel(inertAnimation->effect()); | 375 AnimatableValueKeyframeEffectModel* oldEffect = toAnimatableValueKey
frameEffectModel(inertAnimation->effect()); |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 maybeDispatch(Document::ANIMATIONITERATION_LISTENER, EventTypeNames::ani
mationiteration, elapsedTime); | 622 maybeDispatch(Document::ANIMATIONITERATION_LISTENER, EventTypeNames::ani
mationiteration, elapsedTime); |
| 623 } | 623 } |
| 624 | 624 |
| 625 if (currentPhase == AnimationNode::PhaseAfter && m_previousPhase != Animatio
nNode::PhaseAfter) | 625 if (currentPhase == AnimationNode::PhaseAfter && m_previousPhase != Animatio
nNode::PhaseAfter) |
| 626 maybeDispatch(Document::ANIMATIONEND_LISTENER, EventTypeNames::animation
end, animationNode->activeDurationInternal()); | 626 maybeDispatch(Document::ANIMATIONEND_LISTENER, EventTypeNames::animation
end, animationNode->activeDurationInternal()); |
| 627 | 627 |
| 628 m_previousPhase = currentPhase; | 628 m_previousPhase = currentPhase; |
| 629 m_previousIteration = currentIteration; | 629 m_previousIteration = currentIteration; |
| 630 } | 630 } |
| 631 | 631 |
| 632 void CSSAnimations::AnimationEventDelegate::trace(Visitor* visitor) |
| 633 { |
| 634 visitor->trace(m_target); |
| 635 AnimationNode::EventDelegate::trace(visitor); |
| 636 } |
| 637 |
| 632 void CSSAnimations::TransitionEventDelegate::onEventCondition(const AnimationNod
e* animationNode) | 638 void CSSAnimations::TransitionEventDelegate::onEventCondition(const AnimationNod
e* animationNode) |
| 633 { | 639 { |
| 634 const AnimationNode::Phase currentPhase = animationNode->phase(); | 640 const AnimationNode::Phase currentPhase = animationNode->phase(); |
| 635 if (currentPhase == AnimationNode::PhaseAfter && currentPhase != m_previousP
hase && m_target->document().hasListenerType(Document::TRANSITIONEND_LISTENER))
{ | 641 if (currentPhase == AnimationNode::PhaseAfter && currentPhase != m_previousP
hase && m_target->document().hasListenerType(Document::TRANSITIONEND_LISTENER))
{ |
| 636 String propertyName = getPropertyNameString(m_property); | 642 String propertyName = getPropertyNameString(m_property); |
| 637 const Timing& timing = animationNode->specifiedTiming(); | 643 const Timing& timing = animationNode->specifiedTiming(); |
| 638 double elapsedTime = timing.iterationDuration; | 644 double elapsedTime = timing.iterationDuration; |
| 639 const AtomicString& eventType = EventTypeNames::transitionend; | 645 const AtomicString& eventType = EventTypeNames::transitionend; |
| 640 String pseudoElement = PseudoElement::pseudoElementNameForEvents(m_targe
t->pseudoId()); | 646 String pseudoElement = PseudoElement::pseudoElementNameForEvents(m_targe
t->pseudoId()); |
| 641 RefPtrWillBeRawPtr<TransitionEvent> event = TransitionEvent::create(even
tType, propertyName, elapsedTime, pseudoElement); | 647 RefPtrWillBeRawPtr<TransitionEvent> event = TransitionEvent::create(even
tType, propertyName, elapsedTime, pseudoElement); |
| 642 event->setTarget(m_target); | 648 event->setTarget(m_target); |
| 643 m_target->document().enqueueAnimationFrameEvent(event); | 649 m_target->document().enqueueAnimationFrameEvent(event); |
| 644 } | 650 } |
| 645 | 651 |
| 646 m_previousPhase = currentPhase; | 652 m_previousPhase = currentPhase; |
| 647 } | 653 } |
| 648 | 654 |
| 655 void CSSAnimations::TransitionEventDelegate::trace(Visitor* visitor) |
| 656 { |
| 657 visitor->trace(m_target); |
| 658 AnimationNode::EventDelegate::trace(visitor); |
| 659 } |
| 660 |
| 649 bool CSSAnimations::isAnimatableProperty(CSSPropertyID property) | 661 bool CSSAnimations::isAnimatableProperty(CSSPropertyID property) |
| 650 { | 662 { |
| 651 switch (property) { | 663 switch (property) { |
| 652 case CSSPropertyBackgroundColor: | 664 case CSSPropertyBackgroundColor: |
| 653 case CSSPropertyBackgroundImage: | 665 case CSSPropertyBackgroundImage: |
| 654 case CSSPropertyBackgroundPositionX: | 666 case CSSPropertyBackgroundPositionX: |
| 655 case CSSPropertyBackgroundPositionY: | 667 case CSSPropertyBackgroundPositionY: |
| 656 case CSSPropertyBackgroundSize: | 668 case CSSPropertyBackgroundSize: |
| 657 case CSSPropertyBaselineShift: | 669 case CSSPropertyBaselineShift: |
| 658 case CSSPropertyBorderBottomColor: | 670 case CSSPropertyBorderBottomColor: |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 831 #if ENABLE(OILPAN) | 843 #if ENABLE(OILPAN) |
| 832 visitor->trace(m_newTransitions); | 844 visitor->trace(m_newTransitions); |
| 833 visitor->trace(m_activeInterpolationsForAnimations); | 845 visitor->trace(m_activeInterpolationsForAnimations); |
| 834 visitor->trace(m_activeInterpolationsForTransitions); | 846 visitor->trace(m_activeInterpolationsForTransitions); |
| 835 visitor->trace(m_newAnimations); | 847 visitor->trace(m_newAnimations); |
| 836 visitor->trace(m_cancelledAnimationPlayers); | 848 visitor->trace(m_cancelledAnimationPlayers); |
| 837 #endif | 849 #endif |
| 838 } | 850 } |
| 839 | 851 |
| 840 } // namespace blink | 852 } // namespace blink |
| OLD | NEW |