Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Side by Side Diff: Source/core/animation/css/CSSAnimations.h

Issue 210783002: Oilpan: Move Interpolation's hierarchy to oilpan's heap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 106
107 CSSPropertyID id; 107 CSSPropertyID id;
108 RawPtrWillBeMember<const AnimatableValue> from; 108 RawPtrWillBeMember<const AnimatableValue> from;
109 RawPtrWillBeMember<const AnimatableValue> to; 109 RawPtrWillBeMember<const AnimatableValue> to;
110 RefPtr<InertAnimation> animation; 110 RefPtr<InertAnimation> animation;
111 }; 111 };
112 typedef WillBePersistentHeapHashMap<CSSPropertyID, NewTransition> NewTransit ionMap; 112 typedef WillBePersistentHeapHashMap<CSSPropertyID, NewTransition> NewTransit ionMap;
113 const NewTransitionMap& newTransitions() const { return m_newTransitions; } 113 const NewTransitionMap& newTransitions() const { return m_newTransitions; }
114 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel ledTransitions; } 114 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel ledTransitions; }
115 115
116 void adoptActiveInterpolationsForAnimations(HashMap<CSSPropertyID, RefPtr<In terpolation> >& newMap) { newMap.swap(m_activeInterpolationsForAnimations); } 116 void adoptActiveInterpolationsForAnimations(WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> >& newMap) { newMap.swap(m_activeInterpolatio nsForAnimations); }
117 void adoptActiveInterpolationsForTransitions(HashMap<CSSPropertyID, RefPtr<I nterpolation> >& newMap) { newMap.swap(m_activeInterpolationsForTransitions); } 117 void adoptActiveInterpolationsForTransitions(WillBeHeapHashMap<CSSPropertyID , RefPtrWillBeMember<Interpolation> >& newMap) { newMap.swap(m_activeInterpolati onsForTransitions); }
118 const HashMap<CSSPropertyID, RefPtr<Interpolation> >& activeInterpolationsFo rAnimations() const { return m_activeInterpolationsForAnimations; } 118 const WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> >& activeInterpolationsForAnimations() const { return m_activeInterpolationsForAnim ations; }
119 const HashMap<CSSPropertyID, RefPtr<Interpolation> >& activeInterpolationsFo rTransitions() const { return m_activeInterpolationsForTransitions; } 119 const WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> >& activeInterpolationsForTransitions() const { return m_activeInterpolationsForTra nsitions; }
120 HashMap<CSSPropertyID, RefPtr<Interpolation> >& activeInterpolationsForAnima tions() { return m_activeInterpolationsForAnimations; } 120 WillBeHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> >& active InterpolationsForAnimations() { return m_activeInterpolationsForAnimations; }
121 121
122 bool isEmpty() const 122 bool isEmpty() const
123 { 123 {
124 return m_newAnimations.isEmpty() 124 return m_newAnimations.isEmpty()
125 && m_cancelledAnimationNames.isEmpty() 125 && m_cancelledAnimationNames.isEmpty()
126 && m_cancelledAnimationAnimationPlayers.isEmpty() 126 && m_cancelledAnimationAnimationPlayers.isEmpty()
127 && m_animationsWithPauseToggled.isEmpty() 127 && m_animationsWithPauseToggled.isEmpty()
128 && m_newTransitions.isEmpty() 128 && m_newTransitions.isEmpty()
129 && m_cancelledTransitions.isEmpty() 129 && m_cancelledTransitions.isEmpty()
130 && m_activeInterpolationsForAnimations.isEmpty() 130 && m_activeInterpolationsForAnimations.isEmpty()
131 && m_activeInterpolationsForTransitions.isEmpty(); 131 && m_activeInterpolationsForTransitions.isEmpty();
132 } 132 }
133 private: 133 private:
134 // Order is significant since it defines the order in which new animations 134 // Order is significant since it defines the order in which new animations
135 // will be started. Note that there may be multiple animations present 135 // will be started. Note that there may be multiple animations present
136 // with the same name, due to the way in which we split up animations with 136 // with the same name, due to the way in which we split up animations with
137 // incomplete keyframes. 137 // incomplete keyframes.
138 Vector<NewAnimation> m_newAnimations; 138 Vector<NewAnimation> m_newAnimations;
139 Vector<AtomicString> m_cancelledAnimationNames; 139 Vector<AtomicString> m_cancelledAnimationNames;
140 HashSet<const AnimationPlayer*> m_cancelledAnimationAnimationPlayers; 140 HashSet<const AnimationPlayer*> m_cancelledAnimationAnimationPlayers;
141 Vector<AtomicString> m_animationsWithPauseToggled; 141 Vector<AtomicString> m_animationsWithPauseToggled;
142 142
143 NewTransitionMap m_newTransitions; 143 NewTransitionMap m_newTransitions;
144 HashSet<CSSPropertyID> m_cancelledTransitions; 144 HashSet<CSSPropertyID> m_cancelledTransitions;
145 145
146 HashMap<CSSPropertyID, RefPtr<Interpolation> > m_activeInterpolationsForAnim ations; 146 WillBePersistentHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_activeInterpolationsForAnimations;
147 HashMap<CSSPropertyID, RefPtr<Interpolation> > m_activeInterpolationsForTran sitions; 147 WillBePersistentHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_activeInterpolationsForTransitions;
148 }; 148 };
149 149
150 class CSSAnimations FINAL { 150 class CSSAnimations FINAL {
151 public: 151 public:
152 // FIXME: This method is only used here and in the legacy animations 152 // FIXME: This method is only used here and in the legacy animations
153 // implementation. It should be made private or file-scope when the legacy 153 // implementation. It should be made private or file-scope when the legacy
154 // engine is removed. 154 // engine is removed.
155 static const StyleRuleKeyframes* matchScopedKeyframesRule(StyleResolver*, co nst Element*, const StringImpl*); 155 static const StyleRuleKeyframes* matchScopedKeyframesRule(StyleResolver*, co nst Element*, const StringImpl*);
156 156
157 static bool isAnimatableProperty(CSSPropertyID); 157 static bool isAnimatableProperty(CSSPropertyID);
(...skipping 24 matching lines...) Expand all
182 182
183 Animation* transition; // The TransitionTimeline keeps the AnimationPlay ers alive 183 Animation* transition; // The TransitionTimeline keeps the AnimationPlay ers alive
184 RawPtrWillBeMember<const AnimatableValue> from; 184 RawPtrWillBeMember<const AnimatableValue> from;
185 RawPtrWillBeMember<const AnimatableValue> to; 185 RawPtrWillBeMember<const AnimatableValue> to;
186 }; 186 };
187 typedef WillBePersistentHeapHashMap<CSSPropertyID, RunningTransition> Transi tionMap; 187 typedef WillBePersistentHeapHashMap<CSSPropertyID, RunningTransition> Transi tionMap;
188 AnimationMap m_animations; 188 AnimationMap m_animations;
189 TransitionMap m_transitions; 189 TransitionMap m_transitions;
190 OwnPtr<CSSAnimationUpdate> m_pendingUpdate; 190 OwnPtr<CSSAnimationUpdate> m_pendingUpdate;
191 191
192 HashMap<CSSPropertyID, RefPtr<Interpolation> > m_previousActiveInterpolation sForAnimations; 192 WillBePersistentHeapHashMap<CSSPropertyID, RefPtrWillBeMember<Interpolation> > m_previousActiveInterpolationsForAnimations;
193 193
194 static void calculateAnimationUpdate(CSSAnimationUpdate*, Element*, const El ement& parentElement, const RenderStyle&, RenderStyle* parentStyle, StyleResolve r*); 194 static void calculateAnimationUpdate(CSSAnimationUpdate*, Element*, const El ement& parentElement, const RenderStyle&, RenderStyle* parentStyle, StyleResolve r*);
195 static void calculateTransitionUpdate(CSSAnimationUpdate*, const Element*, c onst RenderStyle&); 195 static void calculateTransitionUpdate(CSSAnimationUpdate*, const Element*, c onst RenderStyle&);
196 static void calculateTransitionUpdateForProperty(CSSPropertyID, const CSSAni mationData*, const RenderStyle& oldStyle, const RenderStyle&, const TransitionMa p* activeTransitions, CSSAnimationUpdate*, const Element*); 196 static void calculateTransitionUpdateForProperty(CSSPropertyID, const CSSAni mationData*, const RenderStyle& oldStyle, const RenderStyle&, const TransitionMa p* activeTransitions, CSSAnimationUpdate*, const Element*);
197 197
198 static void calculateAnimationActiveInterpolations(CSSAnimationUpdate*, cons t Element*); 198 static void calculateAnimationActiveInterpolations(CSSAnimationUpdate*, cons t Element*);
199 static void calculateTransitionActiveInterpolations(CSSAnimationUpdate*, con st Element*); 199 static void calculateTransitionActiveInterpolations(CSSAnimationUpdate*, con st Element*);
200 200
201 class AnimationEventDelegate FINAL : public TimedItem::EventDelegate { 201 class AnimationEventDelegate FINAL : public TimedItem::EventDelegate {
202 public: 202 public:
(...skipping 19 matching lines...) Expand all
222 virtual void onEventCondition(const TimedItem*, bool isFirstSample, Time dItem::Phase previousPhase, double previousIteration) OVERRIDE; 222 virtual void onEventCondition(const TimedItem*, bool isFirstSample, Time dItem::Phase previousPhase, double previousIteration) OVERRIDE;
223 private: 223 private:
224 Element* m_target; 224 Element* m_target;
225 const CSSPropertyID m_property; 225 const CSSPropertyID m_property;
226 }; 226 };
227 }; 227 };
228 228
229 } // namespace WebCore 229 } // namespace WebCore
230 230
231 #endif 231 #endif
OLDNEW
« no previous file with comments | « Source/core/animation/KeyframeEffectModelTest.cpp ('k') | Source/core/animation/css/CSSAnimations.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698