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

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

Issue 1113173003: Web Animations: Update naming to reflect spec changes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: No, really. Created 5 years, 7 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CSSAnimationUpdate_h 5 #ifndef CSSAnimationUpdate_h
6 #define CSSAnimationUpdate_h 6 #define CSSAnimationUpdate_h
7 7
8 #include "core/animation/AnimationStack.h" 8 #include "core/animation/AnimationStack.h"
9 #include "core/animation/Interpolation.h" 9 #include "core/animation/Interpolation.h"
10 #include "core/animation/KeyframeEffectModel.h" 10 #include "core/animation/KeyframeEffectModel.h"
11 #include "core/animation/css/CSSAnimatableValueFactory.h" 11 #include "core/animation/css/CSSAnimatableValueFactory.h"
12 #include "core/animation/css/CSSPropertyEquality.h" 12 #include "core/animation/css/CSSPropertyEquality.h"
13 #include "core/css/CSSKeyframesRule.h" 13 #include "core/css/CSSKeyframesRule.h"
14 #include "core/layout/LayoutObject.h" 14 #include "core/layout/LayoutObject.h"
15 #include "wtf/HashMap.h" 15 #include "wtf/HashMap.h"
16 #include "wtf/Vector.h" 16 #include "wtf/Vector.h"
17 #include "wtf/text/AtomicString.h" 17 #include "wtf/text/AtomicString.h"
18 18
19 namespace blink { 19 namespace blink {
20 20
21 class AnimationPlayer; 21 class Animation;
22 class InertAnimation; 22 class InertAnimation;
23 23
24 // This class stores the CSS Animations/Transitions information we use during a style recalc. 24 // This class stores the CSS Animations/Transitions information we use during a style recalc.
25 // This includes updates to animations/transitions as well as the Interpolations to be applied. 25 // This includes updates to animations/transitions as well as the Interpolations to be applied.
26 class CSSAnimationUpdate final : public NoBaseWillBeGarbageCollectedFinalized<CS SAnimationUpdate> { 26 class CSSAnimationUpdate final : public NoBaseWillBeGarbageCollectedFinalized<CS SAnimationUpdate> {
27 public: 27 public:
28 class NewAnimation { 28 class NewAnimation {
29 ALLOW_ONLY_INLINE_ALLOCATION(); 29 ALLOW_ONLY_INLINE_ALLOCATION();
30 public: 30 public:
31 NewAnimation() 31 NewAnimation()
32 : styleRuleVersion(0) 32 : styleRuleVersion(0)
33 { 33 {
34 } 34 }
35 35
36 NewAnimation(AtomicString name, PassRefPtrWillBeRawPtr<InertAnimation> a nimation, Timing timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) 36 NewAnimation(AtomicString name, PassRefPtrWillBeRawPtr<InertAnimation> e ffect, Timing timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
37 : name(name) 37 : name(name)
38 , animation(animation) 38 , effect(effect)
39 , timing(timing) 39 , timing(timing)
40 , styleRule(styleRule) 40 , styleRule(styleRule)
41 , styleRuleVersion(this->styleRule->version()) 41 , styleRuleVersion(this->styleRule->version())
42 { 42 {
43 } 43 }
44 44
45 DEFINE_INLINE_TRACE() 45 DEFINE_INLINE_TRACE()
46 { 46 {
47 visitor->trace(animation); 47 visitor->trace(effect);
48 visitor->trace(styleRule); 48 visitor->trace(styleRule);
49 } 49 }
50 50
51 AtomicString name; 51 AtomicString name;
52 RefPtrWillBeMember<InertAnimation> animation; 52 RefPtrWillBeMember<InertAnimation> effect;
53 Timing timing; 53 Timing timing;
54 RefPtrWillBeMember<StyleRuleKeyframes> styleRule; 54 RefPtrWillBeMember<StyleRuleKeyframes> styleRule;
55 unsigned styleRuleVersion; 55 unsigned styleRuleVersion;
56 }; 56 };
57 57
58 class UpdatedAnimation { 58 class UpdatedAnimation {
59 ALLOW_ONLY_INLINE_ALLOCATION(); 59 ALLOW_ONLY_INLINE_ALLOCATION();
60 public: 60 public:
61 UpdatedAnimation() 61 UpdatedAnimation()
62 : styleRuleVersion(0) 62 : styleRuleVersion(0)
63 { 63 {
64 } 64 }
65 65
66 UpdatedAnimation(AtomicString name, AnimationPlayer* player, PassRefPtrW illBeRawPtr<InertAnimation> animation, Timing specifiedTiming, PassRefPtrWillBeR awPtr<StyleRuleKeyframes> styleRule) 66 UpdatedAnimation(AtomicString name, Animation* animation, PassRefPtrWill BeRawPtr<InertAnimation> effect, Timing specifiedTiming, PassRefPtrWillBeRawPtr< StyleRuleKeyframes> styleRule)
67 : name(name) 67 : name(name)
68 , player(player)
69 , animation(animation) 68 , animation(animation)
69 , effect(effect)
70 , specifiedTiming(specifiedTiming) 70 , specifiedTiming(specifiedTiming)
71 , styleRule(styleRule) 71 , styleRule(styleRule)
72 , styleRuleVersion(this->styleRule->version()) 72 , styleRuleVersion(this->styleRule->version())
73 { 73 {
74 } 74 }
75 75
76 DEFINE_INLINE_TRACE() 76 DEFINE_INLINE_TRACE()
77 { 77 {
78 visitor->trace(player);
79 visitor->trace(animation); 78 visitor->trace(animation);
79 visitor->trace(effect);
80 visitor->trace(styleRule); 80 visitor->trace(styleRule);
81 } 81 }
82 82
83 AtomicString name; 83 AtomicString name;
84 RawPtrWillBeMember<AnimationPlayer> player; 84 RawPtrWillBeMember<Animation> animation;
85 RefPtrWillBeMember<InertAnimation> animation; 85 RefPtrWillBeMember<InertAnimation> effect;
86 Timing specifiedTiming; 86 Timing specifiedTiming;
87 RefPtrWillBeMember<StyleRuleKeyframes> styleRule; 87 RefPtrWillBeMember<StyleRuleKeyframes> styleRule;
88 unsigned styleRuleVersion; 88 unsigned styleRuleVersion;
89 }; 89 };
90 90
91 class UpdatedAnimationStyle { 91 class UpdatedAnimationStyle {
92 ALLOW_ONLY_INLINE_ALLOCATION(); 92 ALLOW_ONLY_INLINE_ALLOCATION();
93 public: 93 public:
94 struct CompositableStyleSnapshot { 94 struct CompositableStyleSnapshot {
95 DISALLOW_ALLOCATION(); 95 DISALLOW_ALLOCATION();
96 96
97 public: 97 public:
98 RefPtrWillBeMember<AnimatableValue> opacity; 98 RefPtrWillBeMember<AnimatableValue> opacity;
99 RefPtrWillBeMember<AnimatableValue> transform; 99 RefPtrWillBeMember<AnimatableValue> transform;
100 RefPtrWillBeMember<AnimatableValue> webkitFilter; 100 RefPtrWillBeMember<AnimatableValue> webkitFilter;
101 101
102 DEFINE_INLINE_TRACE() 102 DEFINE_INLINE_TRACE()
103 { 103 {
104 visitor->trace(opacity); 104 visitor->trace(opacity);
105 visitor->trace(transform); 105 visitor->trace(transform);
106 visitor->trace(webkitFilter); 106 visitor->trace(webkitFilter);
107 } 107 }
108 }; 108 };
109 109
110 UpdatedAnimationStyle() 110 UpdatedAnimationStyle()
111 { 111 {
112 } 112 }
113 113
114 UpdatedAnimationStyle(AnimationPlayer* player, KeyframeEffectModelBase* effect, const UpdatedAnimationStyle::CompositableStyleSnapshot& snapshot) 114 UpdatedAnimationStyle(Animation* animation, KeyframeEffectModelBase* eff ect, const UpdatedAnimationStyle::CompositableStyleSnapshot& snapshot)
115 : player(player) 115 : animation(animation)
116 , effect(effect) 116 , effect(effect)
117 , snapshot(snapshot) 117 , snapshot(snapshot)
118 { 118 {
119 } 119 }
120 120
121 DEFINE_INLINE_TRACE() 121 DEFINE_INLINE_TRACE()
122 { 122 {
123 visitor->trace(player); 123 visitor->trace(animation);
124 visitor->trace(effect); 124 visitor->trace(effect);
125 visitor->trace(snapshot); 125 visitor->trace(snapshot);
126 } 126 }
127 127
128 RawPtrWillBeMember<AnimationPlayer> player; 128 RawPtrWillBeMember<Animation> animation;
129 RawPtrWillBeMember<KeyframeEffectModelBase> effect; 129 RawPtrWillBeMember<KeyframeEffectModelBase> effect;
130 CompositableStyleSnapshot snapshot; 130 CompositableStyleSnapshot snapshot;
131 }; 131 };
132 132
133 void startAnimation(const AtomicString& animationName, PassRefPtrWillBeRawPt r<InertAnimation> animation, const Timing& timing, PassRefPtrWillBeRawPtr<StyleR uleKeyframes> styleRule) 133 void startAnimation(const AtomicString& animationName, PassRefPtrWillBeRawPt r<InertAnimation> effect, const Timing& timing, PassRefPtrWillBeRawPtr<StyleRule Keyframes> styleRule)
134 { 134 {
135 animation->setName(animationName); 135 effect->setName(animationName);
136 m_newAnimations.append(NewAnimation(animationName, animation, timing, st yleRule)); 136 m_newAnimations.append(NewAnimation(animationName, effect, timing, style Rule));
137 } 137 }
138 // Returns whether player has been suppressed and should be filtered during style application. 138 // Returns whether animation has been suppressed and should be filtered duri ng style application.
139 bool isSuppressedAnimation(const AnimationPlayer* player) const { return m_s uppressedAnimationPlayers.contains(player); } 139 bool isSuppressedAnimation(const Animation* animation) const { return m_supp ressedAnimations.contains(animation); }
140 void cancelAnimation(const AtomicString& name, AnimationPlayer& player) 140 void cancelAnimation(const AtomicString& name, Animation& animation)
141 { 141 {
142 m_cancelledAnimationNames.append(name); 142 m_cancelledAnimationNames.append(name);
143 m_suppressedAnimationPlayers.add(&player); 143 m_suppressedAnimations.add(&animation);
144 } 144 }
145 void toggleAnimationPaused(const AtomicString& name) 145 void toggleAnimationPaused(const AtomicString& name)
146 { 146 {
147 m_animationsWithPauseToggled.append(name); 147 m_animationsWithPauseToggled.append(name);
148 } 148 }
149 void updateAnimation(const AtomicString& name, AnimationPlayer* player, Pass RefPtrWillBeRawPtr<InertAnimation> animation, const Timing& specifiedTiming, 149 void updateAnimation(const AtomicString& name, Animation* animation, PassRef PtrWillBeRawPtr<InertAnimation> effect, const Timing& specifiedTiming,
150 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) 150 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
151 { 151 {
152 m_animationsWithUpdates.append(UpdatedAnimation(name, player, animation, specifiedTiming, styleRule)); 152 m_animationsWithUpdates.append(UpdatedAnimation(name, animation, effect, specifiedTiming, styleRule));
153 m_suppressedAnimationPlayers.add(player); 153 m_suppressedAnimations.add(animation);
154 } 154 }
155 void updateAnimationStyle(AnimationPlayer* player, KeyframeEffectModelBase* effect, LayoutObject* layoutObject, const ComputedStyle& newStyle) 155 void updateAnimationStyle(Animation* animation, KeyframeEffectModelBase* eff ect, LayoutObject* layoutObject, const ComputedStyle& newStyle)
156 { 156 {
157 UpdatedAnimationStyle::CompositableStyleSnapshot snapshot; 157 UpdatedAnimationStyle::CompositableStyleSnapshot snapshot;
158 if (layoutObject) { 158 if (layoutObject) {
159 const ComputedStyle& oldStyle = layoutObject->styleRef(); 159 const ComputedStyle& oldStyle = layoutObject->styleRef();
160 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyOpacity, oldSty le, newStyle) && effect->affects(PropertyHandle(CSSPropertyOpacity))) 160 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyOpacity, oldSty le, newStyle) && effect->affects(PropertyHandle(CSSPropertyOpacity)))
161 snapshot.opacity = CSSAnimatableValueFactory::create(CSSProperty Opacity, newStyle); 161 snapshot.opacity = CSSAnimatableValueFactory::create(CSSProperty Opacity, newStyle);
162 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyTransform, oldS tyle, newStyle) && effect->affects(PropertyHandle(CSSPropertyTransform))) 162 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyTransform, oldS tyle, newStyle) && effect->affects(PropertyHandle(CSSPropertyTransform)))
163 snapshot.transform = CSSAnimatableValueFactory::create(CSSProper tyTransform, newStyle); 163 snapshot.transform = CSSAnimatableValueFactory::create(CSSProper tyTransform, newStyle);
164 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyWebkitFilter, o ldStyle, newStyle) && effect->affects(PropertyHandle(CSSPropertyWebkitFilter))) 164 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyWebkitFilter, o ldStyle, newStyle) && effect->affects(PropertyHandle(CSSPropertyWebkitFilter)))
165 snapshot.webkitFilter = CSSAnimatableValueFactory::create(CSSPro pertyWebkitFilter, newStyle); 165 snapshot.webkitFilter = CSSAnimatableValueFactory::create(CSSPro pertyWebkitFilter, newStyle);
166 } 166 }
167 167
168 m_animationsWithStyleUpdates.append(UpdatedAnimationStyle(player, effect , snapshot)); 168 m_animationsWithStyleUpdates.append(UpdatedAnimationStyle(animation, eff ect, snapshot));
169 } 169 }
170 170
171 void startTransition(CSSPropertyID id, CSSPropertyID eventId, const Animatab leValue* from, const AnimatableValue* to, PassRefPtrWillBeRawPtr<InertAnimation> animation) 171 void startTransition(CSSPropertyID id, CSSPropertyID eventId, const Animatab leValue* from, const AnimatableValue* to, PassRefPtrWillBeRawPtr<InertAnimation> effect)
172 { 172 {
173 animation->setName(getPropertyName(id)); 173 effect->setName(getPropertyName(id));
174 NewTransition newTransition; 174 NewTransition newTransition;
175 newTransition.id = id; 175 newTransition.id = id;
176 newTransition.eventId = eventId; 176 newTransition.eventId = eventId;
177 newTransition.from = from; 177 newTransition.from = from;
178 newTransition.to = to; 178 newTransition.to = to;
179 newTransition.animation = animation; 179 newTransition.effect = effect;
180 m_newTransitions.set(id, newTransition); 180 m_newTransitions.set(id, newTransition);
181 } 181 }
182 bool isCancelledTransition(CSSPropertyID id) const { return m_cancelledTrans itions.contains(id); } 182 bool isCancelledTransition(CSSPropertyID id) const { return m_cancelledTrans itions.contains(id); }
183 void cancelTransition(CSSPropertyID id) { m_cancelledTransitions.add(id); } 183 void cancelTransition(CSSPropertyID id) { m_cancelledTransitions.add(id); }
184 void finishTransition(CSSPropertyID id) { m_finishedTransitions.add(id); } 184 void finishTransition(CSSPropertyID id) { m_finishedTransitions.add(id); }
185 185
186 const WillBeHeapVector<NewAnimation>& newAnimations() const { return m_newAn imations; } 186 const WillBeHeapVector<NewAnimation>& newAnimations() const { return m_newAn imations; }
187 const Vector<AtomicString>& cancelledAnimationNames() const { return m_cance lledAnimationNames; } 187 const Vector<AtomicString>& cancelledAnimationNames() const { return m_cance lledAnimationNames; }
188 const WillBeHeapHashSet<RawPtrWillBeMember<const AnimationPlayer>>& suppress edAnimationAnimationPlayers() const { return m_suppressedAnimationPlayers; } 188 const WillBeHeapHashSet<RawPtrWillBeMember<const Animation>>& suppressedAnim ationAnimations() const { return m_suppressedAnimations; }
189 const Vector<AtomicString>& animationsWithPauseToggled() const { return m_an imationsWithPauseToggled; } 189 const Vector<AtomicString>& animationsWithPauseToggled() const { return m_an imationsWithPauseToggled; }
190 const WillBeHeapVector<UpdatedAnimation>& animationsWithUpdates() const { re turn m_animationsWithUpdates; } 190 const WillBeHeapVector<UpdatedAnimation>& animationsWithUpdates() const { re turn m_animationsWithUpdates; }
191 const WillBeHeapVector<UpdatedAnimationStyle>& animationsWithStyleUpdates() const { return m_animationsWithStyleUpdates; } 191 const WillBeHeapVector<UpdatedAnimationStyle>& animationsWithStyleUpdates() const { return m_animationsWithStyleUpdates; }
192 192
193 struct NewTransition { 193 struct NewTransition {
194 ALLOW_ONLY_INLINE_ALLOCATION(); 194 ALLOW_ONLY_INLINE_ALLOCATION();
195 public: 195 public:
196 DEFINE_INLINE_TRACE() 196 DEFINE_INLINE_TRACE()
197 { 197 {
198 visitor->trace(from); 198 visitor->trace(from);
199 visitor->trace(to); 199 visitor->trace(to);
200 visitor->trace(animation); 200 visitor->trace(effect);
201 } 201 }
202 202
203 CSSPropertyID id; 203 CSSPropertyID id;
204 CSSPropertyID eventId; 204 CSSPropertyID eventId;
205 RawPtrWillBeMember<const AnimatableValue> from; 205 RawPtrWillBeMember<const AnimatableValue> from;
206 RawPtrWillBeMember<const AnimatableValue> to; 206 RawPtrWillBeMember<const AnimatableValue> to;
207 RefPtrWillBeMember<InertAnimation> animation; 207 RefPtrWillBeMember<InertAnimation> effect;
208 }; 208 };
209 using NewTransitionMap = WillBeHeapHashMap<CSSPropertyID, NewTransition>; 209 using NewTransitionMap = WillBeHeapHashMap<CSSPropertyID, NewTransition>;
210 const NewTransitionMap& newTransitions() const { return m_newTransitions; } 210 const NewTransitionMap& newTransitions() const { return m_newTransitions; }
211 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel ledTransitions; } 211 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel ledTransitions; }
212 const HashSet<CSSPropertyID>& finishedTransitions() const { return m_finishe dTransitions; } 212 const HashSet<CSSPropertyID>& finishedTransitions() const { return m_finishe dTransitions; }
213 213
214 void adoptActiveInterpolationsForAnimations(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForAnimations); } 214 void adoptActiveInterpolationsForAnimations(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForAnimations); }
215 void adoptActiveInterpolationsForTransitions(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForTransitions); } 215 void adoptActiveInterpolationsForTransitions(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForTransitions); }
216 const ActiveInterpolationMap& activeInterpolationsForAnimations() const { re turn m_activeInterpolationsForAnimations; } 216 const ActiveInterpolationMap& activeInterpolationsForAnimations() const { re turn m_activeInterpolationsForAnimations; }
217 const ActiveInterpolationMap& activeInterpolationsForTransitions() const { r eturn m_activeInterpolationsForTransitions; } 217 const ActiveInterpolationMap& activeInterpolationsForTransitions() const { r eturn m_activeInterpolationsForTransitions; }
218 ActiveInterpolationMap& activeInterpolationsForAnimations() { return m_activ eInterpolationsForAnimations; } 218 ActiveInterpolationMap& activeInterpolationsForAnimations() { return m_activ eInterpolationsForAnimations; }
219 219
220 bool isEmpty() const 220 bool isEmpty() const
221 { 221 {
222 return m_newAnimations.isEmpty() 222 return m_newAnimations.isEmpty()
223 && m_cancelledAnimationNames.isEmpty() 223 && m_cancelledAnimationNames.isEmpty()
224 && m_suppressedAnimationPlayers.isEmpty() 224 && m_suppressedAnimations.isEmpty()
225 && m_animationsWithPauseToggled.isEmpty() 225 && m_animationsWithPauseToggled.isEmpty()
226 && m_animationsWithUpdates.isEmpty() 226 && m_animationsWithUpdates.isEmpty()
227 && m_animationsWithStyleUpdates.isEmpty() 227 && m_animationsWithStyleUpdates.isEmpty()
228 && m_newTransitions.isEmpty() 228 && m_newTransitions.isEmpty()
229 && m_cancelledTransitions.isEmpty() 229 && m_cancelledTransitions.isEmpty()
230 && m_finishedTransitions.isEmpty() 230 && m_finishedTransitions.isEmpty()
231 && m_activeInterpolationsForAnimations.isEmpty() 231 && m_activeInterpolationsForAnimations.isEmpty()
232 && m_activeInterpolationsForTransitions.isEmpty(); 232 && m_activeInterpolationsForTransitions.isEmpty();
233 } 233 }
234 234
235 DECLARE_TRACE(); 235 DECLARE_TRACE();
236 236
237 private: 237 private:
238 // Order is significant since it defines the order in which new animations 238 // Order is significant since it defines the order in which new animations
239 // will be started. Note that there may be multiple animations present 239 // will be started. Note that there may be multiple animations present
240 // with the same name, due to the way in which we split up animations with 240 // with the same name, due to the way in which we split up animations with
241 // incomplete keyframes. 241 // incomplete keyframes.
242 WillBeHeapVector<NewAnimation> m_newAnimations; 242 WillBeHeapVector<NewAnimation> m_newAnimations;
243 Vector<AtomicString> m_cancelledAnimationNames; 243 Vector<AtomicString> m_cancelledAnimationNames;
244 WillBeHeapHashSet<RawPtrWillBeMember<const AnimationPlayer>> m_suppressedAni mationPlayers; 244 WillBeHeapHashSet<RawPtrWillBeMember<const Animation>> m_suppressedAnimation s;
245 Vector<AtomicString> m_animationsWithPauseToggled; 245 Vector<AtomicString> m_animationsWithPauseToggled;
246 WillBeHeapVector<UpdatedAnimation> m_animationsWithUpdates; 246 WillBeHeapVector<UpdatedAnimation> m_animationsWithUpdates;
247 WillBeHeapVector<UpdatedAnimationStyle> m_animationsWithStyleUpdates; 247 WillBeHeapVector<UpdatedAnimationStyle> m_animationsWithStyleUpdates;
248 248
249 NewTransitionMap m_newTransitions; 249 NewTransitionMap m_newTransitions;
250 HashSet<CSSPropertyID> m_cancelledTransitions; 250 HashSet<CSSPropertyID> m_cancelledTransitions;
251 HashSet<CSSPropertyID> m_finishedTransitions; 251 HashSet<CSSPropertyID> m_finishedTransitions;
252 252
253 ActiveInterpolationMap m_activeInterpolationsForAnimations; 253 ActiveInterpolationMap m_activeInterpolationsForAnimations;
254 ActiveInterpolationMap m_activeInterpolationsForTransitions; 254 ActiveInterpolationMap m_activeInterpolationsForTransitions;
255 }; 255 };
256 256
257 } // namespace blink 257 } // namespace blink
258 258
259 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation); 259 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation);
260 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimation); 260 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimation);
261 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimationSty le); 261 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimationSty le);
262 262
263 #endif 263 #endif
OLDNEW
« no previous file with comments | « Source/core/animation/animatable/AnimatableValueKeyframe.cpp ('k') | Source/core/animation/css/CSSAnimations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698