| 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 namespace blink { | 45 namespace blink { |
| 46 | 46 |
| 47 class CSSTransitionData; | 47 class CSSTransitionData; |
| 48 class Element; | 48 class Element; |
| 49 class StylePropertyShorthand; | 49 class StylePropertyShorthand; |
| 50 class StyleResolver; | 50 class StyleResolver; |
| 51 class StyleRuleKeyframes; | 51 class StyleRuleKeyframes; |
| 52 | 52 |
| 53 // This class stores the CSS Animations/Transitions information we use during a
style recalc. | 53 // This class stores the CSS Animations/Transitions information we use during a
style recalc. |
| 54 // This includes updates to animations/transitions as well as the Interpolations
to be applied. | 54 // This includes updates to animations/transitions as well as the Interpolations
to be applied. |
| 55 class CSSAnimationUpdate FINAL : public NoBaseWillBeGarbageCollectedFinalized<CS
SAnimationUpdate> { | 55 class CSSAnimationUpdate final : public NoBaseWillBeGarbageCollectedFinalized<CS
SAnimationUpdate> { |
| 56 public: | 56 public: |
| 57 void startAnimation(AtomicString& animationName, PassRefPtrWillBeRawPtr<Iner
tAnimation> animation) | 57 void startAnimation(AtomicString& animationName, PassRefPtrWillBeRawPtr<Iner
tAnimation> animation) |
| 58 { | 58 { |
| 59 animation->setName(animationName); | 59 animation->setName(animationName); |
| 60 NewAnimation newAnimation; | 60 NewAnimation newAnimation; |
| 61 newAnimation.name = animationName; | 61 newAnimation.name = animationName; |
| 62 newAnimation.animation = animation; | 62 newAnimation.animation = animation; |
| 63 m_newAnimations.append(newAnimation); | 63 m_newAnimations.append(newAnimation); |
| 64 } | 64 } |
| 65 // Returns whether player has been cancelled and should be filtered during s
tyle application. | 65 // Returns whether player has been cancelled and should be filtered during s
tyle application. |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 WillBeHeapHashSet<RawPtrWillBeMember<const AnimationPlayer> > m_cancelledAni
mationPlayers; | 154 WillBeHeapHashSet<RawPtrWillBeMember<const AnimationPlayer> > m_cancelledAni
mationPlayers; |
| 155 Vector<AtomicString> m_animationsWithPauseToggled; | 155 Vector<AtomicString> m_animationsWithPauseToggled; |
| 156 | 156 |
| 157 NewTransitionMap m_newTransitions; | 157 NewTransitionMap m_newTransitions; |
| 158 HashSet<CSSPropertyID> m_cancelledTransitions; | 158 HashSet<CSSPropertyID> m_cancelledTransitions; |
| 159 | 159 |
| 160 WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_activ
eInterpolationsForAnimations; | 160 WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_activ
eInterpolationsForAnimations; |
| 161 WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_activ
eInterpolationsForTransitions; | 161 WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_activ
eInterpolationsForTransitions; |
| 162 }; | 162 }; |
| 163 | 163 |
| 164 class CSSAnimations FINAL { | 164 class CSSAnimations final { |
| 165 WTF_MAKE_NONCOPYABLE(CSSAnimations); | 165 WTF_MAKE_NONCOPYABLE(CSSAnimations); |
| 166 DISALLOW_ALLOCATION(); | 166 DISALLOW_ALLOCATION(); |
| 167 public: | 167 public: |
| 168 CSSAnimations(); | 168 CSSAnimations(); |
| 169 | 169 |
| 170 // FIXME: This method is only used here and in the legacy animations | 170 // FIXME: This method is only used here and in the legacy animations |
| 171 // implementation. It should be made private or file-scope when the legacy | 171 // implementation. It should be made private or file-scope when the legacy |
| 172 // engine is removed. | 172 // engine is removed. |
| 173 static const StyleRuleKeyframes* matchScopedKeyframesRule(StyleResolver*, co
nst Element*, const StringImpl*); | 173 static const StyleRuleKeyframes* matchScopedKeyframesRule(StyleResolver*, co
nst Element*, const StringImpl*); |
| 174 | 174 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 | 210 |
| 211 WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_previ
ousActiveInterpolationsForAnimations; | 211 WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_previ
ousActiveInterpolationsForAnimations; |
| 212 | 212 |
| 213 static void calculateAnimationUpdate(CSSAnimationUpdate*, const Element* ani
matingElement, Element&, const RenderStyle&, RenderStyle* parentStyle, StyleReso
lver*); | 213 static void calculateAnimationUpdate(CSSAnimationUpdate*, const Element* ani
matingElement, Element&, const RenderStyle&, RenderStyle* parentStyle, StyleReso
lver*); |
| 214 static void calculateTransitionUpdate(CSSAnimationUpdate*, const Element* an
imatingElement, const RenderStyle&); | 214 static void calculateTransitionUpdate(CSSAnimationUpdate*, const Element* an
imatingElement, const RenderStyle&); |
| 215 static void calculateTransitionUpdateForProperty(CSSPropertyID, CSSPropertyI
D eventId, const CSSTransitionData&, size_t transitionIndex, const RenderStyle&
oldStyle, const RenderStyle&, const TransitionMap* activeTransitions, CSSAnimati
onUpdate*, const Element*); | 215 static void calculateTransitionUpdateForProperty(CSSPropertyID, CSSPropertyI
D eventId, const CSSTransitionData&, size_t transitionIndex, const RenderStyle&
oldStyle, const RenderStyle&, const TransitionMap* activeTransitions, CSSAnimati
onUpdate*, const Element*); |
| 216 | 216 |
| 217 static void calculateAnimationActiveInterpolations(CSSAnimationUpdate*, cons
t Element* animatingElement, double timelineCurrentTime); | 217 static void calculateAnimationActiveInterpolations(CSSAnimationUpdate*, cons
t Element* animatingElement, double timelineCurrentTime); |
| 218 static void calculateTransitionActiveInterpolations(CSSAnimationUpdate*, con
st Element* animatingElement, double timelineCurrentTime); | 218 static void calculateTransitionActiveInterpolations(CSSAnimationUpdate*, con
st Element* animatingElement, double timelineCurrentTime); |
| 219 | 219 |
| 220 class AnimationEventDelegate FINAL : public AnimationNode::EventDelegate { | 220 class AnimationEventDelegate final : public AnimationNode::EventDelegate { |
| 221 public: | 221 public: |
| 222 AnimationEventDelegate(Element* target, const AtomicString& name) | 222 AnimationEventDelegate(Element* target, const AtomicString& name) |
| 223 : m_target(target) | 223 : m_target(target) |
| 224 , m_name(name) | 224 , m_name(name) |
| 225 , m_previousPhase(AnimationNode::PhaseNone) | 225 , m_previousPhase(AnimationNode::PhaseNone) |
| 226 , m_previousIteration(nullValue()) | 226 , m_previousIteration(nullValue()) |
| 227 { | 227 { |
| 228 } | 228 } |
| 229 virtual void onEventCondition(const AnimationNode*) OVERRIDE; | 229 virtual void onEventCondition(const AnimationNode*) override; |
| 230 virtual void trace(Visitor*) OVERRIDE; | 230 virtual void trace(Visitor*) override; |
| 231 | 231 |
| 232 private: | 232 private: |
| 233 void maybeDispatch(Document::ListenerType, const AtomicString& eventName
, double elapsedTime); | 233 void maybeDispatch(Document::ListenerType, const AtomicString& eventName
, double elapsedTime); |
| 234 RawPtrWillBeMember<Element> m_target; | 234 RawPtrWillBeMember<Element> m_target; |
| 235 const AtomicString m_name; | 235 const AtomicString m_name; |
| 236 AnimationNode::Phase m_previousPhase; | 236 AnimationNode::Phase m_previousPhase; |
| 237 double m_previousIteration; | 237 double m_previousIteration; |
| 238 }; | 238 }; |
| 239 | 239 |
| 240 class TransitionEventDelegate FINAL : public AnimationNode::EventDelegate { | 240 class TransitionEventDelegate final : public AnimationNode::EventDelegate { |
| 241 public: | 241 public: |
| 242 TransitionEventDelegate(Element* target, CSSPropertyID property) | 242 TransitionEventDelegate(Element* target, CSSPropertyID property) |
| 243 : m_target(target) | 243 : m_target(target) |
| 244 , m_property(property) | 244 , m_property(property) |
| 245 , m_previousPhase(AnimationNode::PhaseNone) | 245 , m_previousPhase(AnimationNode::PhaseNone) |
| 246 { | 246 { |
| 247 } | 247 } |
| 248 virtual void onEventCondition(const AnimationNode*) OVERRIDE; | 248 virtual void onEventCondition(const AnimationNode*) override; |
| 249 virtual void trace(Visitor*) OVERRIDE; | 249 virtual void trace(Visitor*) override; |
| 250 | 250 |
| 251 private: | 251 private: |
| 252 RawPtrWillBeMember<Element> m_target; | 252 RawPtrWillBeMember<Element> m_target; |
| 253 const CSSPropertyID m_property; | 253 const CSSPropertyID m_property; |
| 254 AnimationNode::Phase m_previousPhase; | 254 AnimationNode::Phase m_previousPhase; |
| 255 }; | 255 }; |
| 256 }; | 256 }; |
| 257 | 257 |
| 258 } // namespace blink | 258 } // namespace blink |
| 259 | 259 |
| 260 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation); | 260 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation); |
| 261 | 261 |
| 262 #endif | 262 #endif |
| OLD | NEW |