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

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

Issue 1318543009: Oilpan: Partially ship Oilpan for core/animations (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 3 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/InertEffect.h" 9 #include "core/animation/InertEffect.h"
10 #include "core/animation/Interpolation.h" 10 #include "core/animation/Interpolation.h"
(...skipping 18 matching lines...) Expand all
29 WTF_MAKE_NONCOPYABLE(CSSAnimationUpdate); 29 WTF_MAKE_NONCOPYABLE(CSSAnimationUpdate);
30 public: 30 public:
31 class NewAnimation { 31 class NewAnimation {
32 ALLOW_ONLY_INLINE_ALLOCATION(); 32 ALLOW_ONLY_INLINE_ALLOCATION();
33 public: 33 public:
34 NewAnimation() 34 NewAnimation()
35 : styleRuleVersion(0) 35 : styleRuleVersion(0)
36 { 36 {
37 } 37 }
38 38
39 NewAnimation(AtomicString name, PassRefPtrWillBeRawPtr<InertEffect> effe ct, Timing timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) 39 NewAnimation(AtomicString name, InertEffect* effect, Timing timing, Pass RefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
40 : name(name) 40 : name(name)
41 , effect(effect) 41 , effect(effect)
42 , timing(timing) 42 , timing(timing)
43 , styleRule(styleRule) 43 , styleRule(styleRule)
44 , styleRuleVersion(this->styleRule->version()) 44 , styleRuleVersion(this->styleRule->version())
45 { 45 {
46 } 46 }
47 47
48 DEFINE_INLINE_TRACE() 48 DEFINE_INLINE_TRACE()
49 { 49 {
50 visitor->trace(effect); 50 visitor->trace(effect);
51 visitor->trace(styleRule); 51 visitor->trace(styleRule);
52 } 52 }
53 53
54 AtomicString name; 54 AtomicString name;
55 RefPtrWillBeMember<InertEffect> effect; 55 Member<InertEffect> effect;
56 Timing timing; 56 Timing timing;
57 RefPtrWillBeMember<StyleRuleKeyframes> styleRule; 57 RefPtrWillBeMember<StyleRuleKeyframes> styleRule;
58 unsigned styleRuleVersion; 58 unsigned styleRuleVersion;
59 }; 59 };
60 60
61 class UpdatedAnimation { 61 class UpdatedAnimation {
62 ALLOW_ONLY_INLINE_ALLOCATION(); 62 ALLOW_ONLY_INLINE_ALLOCATION();
63 public: 63 public:
64 UpdatedAnimation() 64 UpdatedAnimation()
65 : styleRuleVersion(0) 65 : styleRuleVersion(0)
66 { 66 {
67 } 67 }
68 68
69 UpdatedAnimation(AtomicString name, Animation* animation, PassRefPtrWill BeRawPtr<InertEffect> effect, Timing specifiedTiming, PassRefPtrWillBeRawPtr<Sty leRuleKeyframes> styleRule) 69 UpdatedAnimation(AtomicString name, Animation* animation, InertEffect* e ffect, Timing specifiedTiming, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleR ule)
70 : name(name) 70 : name(name)
71 , animation(animation) 71 , animation(animation)
72 , effect(effect) 72 , effect(effect)
73 , specifiedTiming(specifiedTiming) 73 , specifiedTiming(specifiedTiming)
74 , styleRule(styleRule) 74 , styleRule(styleRule)
75 , styleRuleVersion(this->styleRule->version()) 75 , styleRuleVersion(this->styleRule->version())
76 { 76 {
77 } 77 }
78 78
79 DEFINE_INLINE_TRACE() 79 DEFINE_INLINE_TRACE()
80 { 80 {
81 visitor->trace(animation); 81 visitor->trace(animation);
82 visitor->trace(effect); 82 visitor->trace(effect);
83 visitor->trace(styleRule); 83 visitor->trace(styleRule);
84 } 84 }
85 85
86 AtomicString name; 86 AtomicString name;
87 RawPtrWillBeMember<Animation> animation; 87 Member<Animation> animation;
88 RefPtrWillBeMember<InertEffect> effect; 88 Member<InertEffect> effect;
89 Timing specifiedTiming; 89 Timing specifiedTiming;
90 RefPtrWillBeMember<StyleRuleKeyframes> styleRule; 90 RefPtrWillBeMember<StyleRuleKeyframes> styleRule;
91 unsigned styleRuleVersion; 91 unsigned styleRuleVersion;
92 }; 92 };
93 93
94 class UpdatedAnimationStyle { 94 class UpdatedAnimationStyle {
95 ALLOW_ONLY_INLINE_ALLOCATION(); 95 ALLOW_ONLY_INLINE_ALLOCATION();
96 public: 96 public:
97 struct CompositableStyleSnapshot { 97 struct CompositableStyleSnapshot {
98 DISALLOW_ALLOCATION(); 98 DISALLOW_ALLOCATION();
(...skipping 24 matching lines...) Expand all
123 { 123 {
124 } 124 }
125 125
126 DEFINE_INLINE_TRACE() 126 DEFINE_INLINE_TRACE()
127 { 127 {
128 visitor->trace(animation); 128 visitor->trace(animation);
129 visitor->trace(model); 129 visitor->trace(model);
130 visitor->trace(snapshot); 130 visitor->trace(snapshot);
131 } 131 }
132 132
133 RawPtrWillBeMember<Animation> animation; 133 Member<Animation> animation;
134 RawPtrWillBeMember<KeyframeEffectModelBase> model; 134 Member<KeyframeEffectModelBase> model;
135 CompositableStyleSnapshot snapshot; 135 CompositableStyleSnapshot snapshot;
136 }; 136 };
137 137
138 CSSAnimationUpdate() 138 CSSAnimationUpdate()
139 { 139 {
140 } 140 }
141 141
142 ~CSSAnimationUpdate() 142 ~CSSAnimationUpdate()
143 { 143 {
144 #if ENABLE(OILPAN)
145 // For performance reasons, explicitly clear HeapVectors and 144 // For performance reasons, explicitly clear HeapVectors and
146 // HeapHashMaps to avoid giving a pressure on Oilpan's GC. 145 // HeapHashMaps to avoid giving a pressure on Oilpan's GC.
147 clear(); 146 clear();
148 #endif
149 } 147 }
150 148
151 void copy(const CSSAnimationUpdate& update) 149 void copy(const CSSAnimationUpdate& update)
152 { 150 {
153 ASSERT(isEmpty()); 151 ASSERT(isEmpty());
154 m_newAnimations = update.newAnimations(); 152 m_newAnimations = update.newAnimations();
155 m_animationsWithUpdates = update.animationsWithUpdates(); 153 m_animationsWithUpdates = update.animationsWithUpdates();
156 m_animationsWithStyleUpdates = update.animationsWithStyleUpdates(); 154 m_animationsWithStyleUpdates = update.animationsWithStyleUpdates();
157 m_newTransitions = update.newTransitions(); 155 m_newTransitions = update.newTransitions();
158 m_activeInterpolationsForAnimations = update.activeInterpolationsForAnim ations(); 156 m_activeInterpolationsForAnimations = update.activeInterpolationsForAnim ations();
(...skipping 11 matching lines...) Expand all
170 m_animationsWithStyleUpdates.clear(); 168 m_animationsWithStyleUpdates.clear();
171 m_newTransitions.clear(); 169 m_newTransitions.clear();
172 m_activeInterpolationsForAnimations.clear(); 170 m_activeInterpolationsForAnimations.clear();
173 m_activeInterpolationsForTransitions.clear(); 171 m_activeInterpolationsForTransitions.clear();
174 m_cancelledAnimationNames.clear(); 172 m_cancelledAnimationNames.clear();
175 m_animationsWithPauseToggled.clear(); 173 m_animationsWithPauseToggled.clear();
176 m_cancelledTransitions.clear(); 174 m_cancelledTransitions.clear();
177 m_finishedTransitions.clear(); 175 m_finishedTransitions.clear();
178 } 176 }
179 177
180 void startAnimation(const AtomicString& animationName, PassRefPtrWillBeRawPt r<InertEffect> effect, const Timing& timing, PassRefPtrWillBeRawPtr<StyleRuleKey frames> styleRule) 178 void startAnimation(const AtomicString& animationName, InertEffect* effect, const Timing& timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
181 { 179 {
182 effect->setName(animationName); 180 effect->setName(animationName);
183 m_newAnimations.append(NewAnimation(animationName, effect, timing, style Rule)); 181 m_newAnimations.append(NewAnimation(animationName, effect, timing, style Rule));
184 } 182 }
185 // Returns whether animation has been suppressed and should be filtered duri ng style application. 183 // Returns whether animation has been suppressed and should be filtered duri ng style application.
186 bool isSuppressedAnimation(const Animation* animation) const { return m_supp ressedAnimations.contains(animation); } 184 bool isSuppressedAnimation(const Animation* animation) const { return m_supp ressedAnimations.contains(animation); }
187 void cancelAnimation(const AtomicString& name, Animation& animation) 185 void cancelAnimation(const AtomicString& name, Animation& animation)
188 { 186 {
189 m_cancelledAnimationNames.append(name); 187 m_cancelledAnimationNames.append(name);
190 m_suppressedAnimations.add(&animation); 188 m_suppressedAnimations.add(&animation);
191 } 189 }
192 void toggleAnimationPaused(const AtomicString& name) 190 void toggleAnimationPaused(const AtomicString& name)
193 { 191 {
194 m_animationsWithPauseToggled.append(name); 192 m_animationsWithPauseToggled.append(name);
195 } 193 }
196 void updateAnimation(const AtomicString& name, Animation* animation, PassRef PtrWillBeRawPtr<InertEffect> effect, const Timing& specifiedTiming, 194 void updateAnimation(const AtomicString& name, Animation* animation, InertEf fect* effect, const Timing& specifiedTiming,
197 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) 195 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
198 { 196 {
199 m_animationsWithUpdates.append(UpdatedAnimation(name, animation, effect, specifiedTiming, styleRule)); 197 m_animationsWithUpdates.append(UpdatedAnimation(name, animation, effect, specifiedTiming, styleRule));
200 m_suppressedAnimations.add(animation); 198 m_suppressedAnimations.add(animation);
201 } 199 }
202 void updateAnimationStyle(Animation* animation, KeyframeEffectModelBase* mod el, LayoutObject* layoutObject, const ComputedStyle& newStyle) 200 void updateAnimationStyle(Animation* animation, KeyframeEffectModelBase* mod el, LayoutObject* layoutObject, const ComputedStyle& newStyle)
203 { 201 {
204 UpdatedAnimationStyle::CompositableStyleSnapshot snapshot; 202 UpdatedAnimationStyle::CompositableStyleSnapshot snapshot;
205 if (layoutObject) { 203 if (layoutObject) {
206 const ComputedStyle& oldStyle = layoutObject->styleRef(); 204 const ComputedStyle& oldStyle = layoutObject->styleRef();
207 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyOpacity, oldSty le, newStyle) && model->affects(PropertyHandle(CSSPropertyOpacity))) 205 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyOpacity, oldSty le, newStyle) && model->affects(PropertyHandle(CSSPropertyOpacity)))
208 snapshot.opacity = CSSAnimatableValueFactory::create(CSSProperty Opacity, newStyle); 206 snapshot.opacity = CSSAnimatableValueFactory::create(CSSProperty Opacity, newStyle);
209 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyTransform, oldS tyle, newStyle) && model->affects(PropertyHandle(CSSPropertyTransform))) 207 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyTransform, oldS tyle, newStyle) && model->affects(PropertyHandle(CSSPropertyTransform)))
210 snapshot.transform = CSSAnimatableValueFactory::create(CSSProper tyTransform, newStyle); 208 snapshot.transform = CSSAnimatableValueFactory::create(CSSProper tyTransform, newStyle);
211 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyWebkitFilter, o ldStyle, newStyle) && model->affects(PropertyHandle(CSSPropertyWebkitFilter))) 209 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyWebkitFilter, o ldStyle, newStyle) && model->affects(PropertyHandle(CSSPropertyWebkitFilter)))
212 snapshot.webkitFilter = CSSAnimatableValueFactory::create(CSSPro pertyWebkitFilter, newStyle); 210 snapshot.webkitFilter = CSSAnimatableValueFactory::create(CSSPro pertyWebkitFilter, newStyle);
213 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyBackdropFilter, oldStyle, newStyle) && model->affects(PropertyHandle(CSSPropertyBackdropFilter) )) 211 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyBackdropFilter, oldStyle, newStyle) && model->affects(PropertyHandle(CSSPropertyBackdropFilter) ))
214 snapshot.backdropFilter = CSSAnimatableValueFactory::create(CSSP ropertyBackdropFilter, newStyle); 212 snapshot.backdropFilter = CSSAnimatableValueFactory::create(CSSP ropertyBackdropFilter, newStyle);
215 } 213 }
216 214
217 m_animationsWithStyleUpdates.append(UpdatedAnimationStyle(animation, mod el, snapshot)); 215 m_animationsWithStyleUpdates.append(UpdatedAnimationStyle(animation, mod el, snapshot));
218 } 216 }
219 217
220 void startTransition(CSSPropertyID id, const AnimatableValue* from, const An imatableValue* to, PassRefPtrWillBeRawPtr<InertEffect> effect) 218 void startTransition(CSSPropertyID id, const AnimatableValue* from, const An imatableValue* to, InertEffect* effect)
221 { 219 {
222 effect->setName(getPropertyName(id)); 220 effect->setName(getPropertyName(id));
223 NewTransition newTransition; 221 NewTransition newTransition;
224 newTransition.id = id; 222 newTransition.id = id;
225 newTransition.from = from; 223 newTransition.from = from;
226 newTransition.to = to; 224 newTransition.to = to;
227 newTransition.effect = effect; 225 newTransition.effect = effect;
228 m_newTransitions.set(id, newTransition); 226 m_newTransitions.set(id, newTransition);
229 } 227 }
230 bool isCancelledTransition(CSSPropertyID id) const { return m_cancelledTrans itions.contains(id); } 228 bool isCancelledTransition(CSSPropertyID id) const { return m_cancelledTrans itions.contains(id); }
231 void cancelTransition(CSSPropertyID id) { m_cancelledTransitions.add(id); } 229 void cancelTransition(CSSPropertyID id) { m_cancelledTransitions.add(id); }
232 void finishTransition(CSSPropertyID id) { m_finishedTransitions.add(id); } 230 void finishTransition(CSSPropertyID id) { m_finishedTransitions.add(id); }
233 231
234 const WillBeHeapVector<NewAnimation>& newAnimations() const { return m_newAn imations; } 232 const HeapVector<NewAnimation>& newAnimations() const { return m_newAnimatio ns; }
235 const Vector<AtomicString>& cancelledAnimationNames() const { return m_cance lledAnimationNames; } 233 const Vector<AtomicString>& cancelledAnimationNames() const { return m_cance lledAnimationNames; }
236 const WillBeHeapHashSet<RawPtrWillBeMember<const Animation>>& suppressedAnim ations() const { return m_suppressedAnimations; } 234 const HeapHashSet<Member<const Animation>>& suppressedAnimations() const { r eturn m_suppressedAnimations; }
237 const Vector<AtomicString>& animationsWithPauseToggled() const { return m_an imationsWithPauseToggled; } 235 const Vector<AtomicString>& animationsWithPauseToggled() const { return m_an imationsWithPauseToggled; }
238 const WillBeHeapVector<UpdatedAnimation>& animationsWithUpdates() const { re turn m_animationsWithUpdates; } 236 const HeapVector<UpdatedAnimation>& animationsWithUpdates() const { return m _animationsWithUpdates; }
239 const WillBeHeapVector<UpdatedAnimationStyle>& animationsWithStyleUpdates() const { return m_animationsWithStyleUpdates; } 237 const HeapVector<UpdatedAnimationStyle>& animationsWithStyleUpdates() const { return m_animationsWithStyleUpdates; }
240 238
241 struct NewTransition { 239 struct NewTransition {
242 ALLOW_ONLY_INLINE_ALLOCATION(); 240 ALLOW_ONLY_INLINE_ALLOCATION();
243 public: 241 public:
244 DEFINE_INLINE_TRACE() 242 DEFINE_INLINE_TRACE()
245 { 243 {
246 visitor->trace(from); 244 visitor->trace(from);
247 visitor->trace(to); 245 visitor->trace(to);
248 visitor->trace(effect); 246 visitor->trace(effect);
249 } 247 }
250 248
251 CSSPropertyID id; 249 CSSPropertyID id;
252 RawPtrWillBeMember<const AnimatableValue> from; 250 RawPtrWillBeMember<const AnimatableValue> from;
253 RawPtrWillBeMember<const AnimatableValue> to; 251 RawPtrWillBeMember<const AnimatableValue> to;
254 RefPtrWillBeMember<InertEffect> effect; 252 Member<InertEffect> effect;
255 }; 253 };
256 using NewTransitionMap = WillBeHeapHashMap<CSSPropertyID, NewTransition>; 254 using NewTransitionMap = HeapHashMap<CSSPropertyID, NewTransition>;
257 const NewTransitionMap& newTransitions() const { return m_newTransitions; } 255 const NewTransitionMap& newTransitions() const { return m_newTransitions; }
258 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel ledTransitions; } 256 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel ledTransitions; }
259 const HashSet<CSSPropertyID>& finishedTransitions() const { return m_finishe dTransitions; } 257 const HashSet<CSSPropertyID>& finishedTransitions() const { return m_finishe dTransitions; }
260 258
261 void adoptActiveInterpolationsForAnimations(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForAnimations); } 259 void adoptActiveInterpolationsForAnimations(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForAnimations); }
262 void adoptActiveInterpolationsForTransitions(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForTransitions); } 260 void adoptActiveInterpolationsForTransitions(ActiveInterpolationMap& newMap) { newMap.swap(m_activeInterpolationsForTransitions); }
263 const ActiveInterpolationMap& activeInterpolationsForAnimations() const { re turn m_activeInterpolationsForAnimations; } 261 const ActiveInterpolationMap& activeInterpolationsForAnimations() const { re turn m_activeInterpolationsForAnimations; }
264 const ActiveInterpolationMap& activeInterpolationsForTransitions() const { r eturn m_activeInterpolationsForTransitions; } 262 const ActiveInterpolationMap& activeInterpolationsForTransitions() const { r eturn m_activeInterpolationsForTransitions; }
265 ActiveInterpolationMap& activeInterpolationsForAnimations() { return m_activ eInterpolationsForAnimations; } 263 ActiveInterpolationMap& activeInterpolationsForAnimations() { return m_activ eInterpolationsForAnimations; }
266 264
267 bool isEmpty() const 265 bool isEmpty() const
268 { 266 {
269 return m_newAnimations.isEmpty() 267 return m_newAnimations.isEmpty()
270 && m_cancelledAnimationNames.isEmpty() 268 && m_cancelledAnimationNames.isEmpty()
271 && m_suppressedAnimations.isEmpty() 269 && m_suppressedAnimations.isEmpty()
272 && m_animationsWithPauseToggled.isEmpty() 270 && m_animationsWithPauseToggled.isEmpty()
273 && m_animationsWithUpdates.isEmpty() 271 && m_animationsWithUpdates.isEmpty()
274 && m_animationsWithStyleUpdates.isEmpty() 272 && m_animationsWithStyleUpdates.isEmpty()
275 && m_newTransitions.isEmpty() 273 && m_newTransitions.isEmpty()
276 && m_cancelledTransitions.isEmpty() 274 && m_cancelledTransitions.isEmpty()
277 && m_finishedTransitions.isEmpty() 275 && m_finishedTransitions.isEmpty()
278 && m_activeInterpolationsForAnimations.isEmpty() 276 && m_activeInterpolationsForAnimations.isEmpty()
279 && m_activeInterpolationsForTransitions.isEmpty(); 277 && m_activeInterpolationsForTransitions.isEmpty();
280 } 278 }
281 279
282 DEFINE_INLINE_TRACE() 280 DEFINE_INLINE_TRACE()
283 { 281 {
282 visitor->trace(m_newTransitions);
284 #if ENABLE(OILPAN) 283 #if ENABLE(OILPAN)
285 visitor->trace(m_newTransitions);
286 visitor->trace(m_activeInterpolationsForAnimations); 284 visitor->trace(m_activeInterpolationsForAnimations);
287 visitor->trace(m_activeInterpolationsForTransitions); 285 visitor->trace(m_activeInterpolationsForTransitions);
286 #endif
288 visitor->trace(m_newAnimations); 287 visitor->trace(m_newAnimations);
289 visitor->trace(m_suppressedAnimations); 288 visitor->trace(m_suppressedAnimations);
290 visitor->trace(m_animationsWithUpdates); 289 visitor->trace(m_animationsWithUpdates);
291 visitor->trace(m_animationsWithStyleUpdates); 290 visitor->trace(m_animationsWithStyleUpdates);
292 #endif
293 } 291 }
294 292
295 private: 293 private:
296 // Order is significant since it defines the order in which new animations 294 // Order is significant since it defines the order in which new animations
297 // will be started. Note that there may be multiple animations present 295 // will be started. Note that there may be multiple animations present
298 // with the same name, due to the way in which we split up animations with 296 // with the same name, due to the way in which we split up animations with
299 // incomplete keyframes. 297 // incomplete keyframes.
300 WillBeHeapVector<NewAnimation> m_newAnimations; 298 HeapVector<NewAnimation> m_newAnimations;
301 Vector<AtomicString> m_cancelledAnimationNames; 299 Vector<AtomicString> m_cancelledAnimationNames;
302 WillBeHeapHashSet<RawPtrWillBeMember<const Animation>> m_suppressedAnimation s; 300 HeapHashSet<Member<const Animation>> m_suppressedAnimations;
303 Vector<AtomicString> m_animationsWithPauseToggled; 301 Vector<AtomicString> m_animationsWithPauseToggled;
304 WillBeHeapVector<UpdatedAnimation> m_animationsWithUpdates; 302 HeapVector<UpdatedAnimation> m_animationsWithUpdates;
305 WillBeHeapVector<UpdatedAnimationStyle> m_animationsWithStyleUpdates; 303 HeapVector<UpdatedAnimationStyle> m_animationsWithStyleUpdates;
306 304
307 NewTransitionMap m_newTransitions; 305 NewTransitionMap m_newTransitions;
308 HashSet<CSSPropertyID> m_cancelledTransitions; 306 HashSet<CSSPropertyID> m_cancelledTransitions;
309 HashSet<CSSPropertyID> m_finishedTransitions; 307 HashSet<CSSPropertyID> m_finishedTransitions;
310 308
311 ActiveInterpolationMap m_activeInterpolationsForAnimations; 309 ActiveInterpolationMap m_activeInterpolationsForAnimations;
312 ActiveInterpolationMap m_activeInterpolationsForTransitions; 310 ActiveInterpolationMap m_activeInterpolationsForTransitions;
313 }; 311 };
314 312
315 } // namespace blink 313 } // namespace blink
316 314
317 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation); 315 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation);
318 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimation); 316 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimation);
319 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimationSty le); 317 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimationSty le);
320 318
321 #endif 319 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698