OLD | NEW |
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 Loading... |
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(); |
99 | 99 |
100 public: | 100 public: |
101 RefPtrWillBeMember<AnimatableValue> opacity; | 101 Member<AnimatableValue> opacity; |
102 RefPtrWillBeMember<AnimatableValue> transform; | 102 Member<AnimatableValue> transform; |
103 RefPtrWillBeMember<AnimatableValue> webkitFilter; | 103 Member<AnimatableValue> webkitFilter; |
104 | 104 |
105 DEFINE_INLINE_TRACE() | 105 DEFINE_INLINE_TRACE() |
106 { | 106 { |
107 visitor->trace(opacity); | 107 visitor->trace(opacity); |
108 visitor->trace(transform); | 108 visitor->trace(transform); |
109 visitor->trace(webkitFilter); | 109 visitor->trace(webkitFilter); |
110 } | 110 } |
111 }; | 111 }; |
112 | 112 |
113 UpdatedAnimationStyle() | 113 UpdatedAnimationStyle() |
114 { | 114 { |
115 } | 115 } |
116 | 116 |
117 UpdatedAnimationStyle(Animation* animation, KeyframeEffectModelBase* mod
el, const UpdatedAnimationStyle::CompositableStyleSnapshot& snapshot) | 117 UpdatedAnimationStyle(Animation* animation, KeyframeEffectModelBase* mod
el, const UpdatedAnimationStyle::CompositableStyleSnapshot& snapshot) |
118 : animation(animation) | 118 : animation(animation) |
119 , model(model) | 119 , model(model) |
120 , snapshot(snapshot) | 120 , snapshot(snapshot) |
121 { | 121 { |
122 } | 122 } |
123 | 123 |
124 DEFINE_INLINE_TRACE() | 124 DEFINE_INLINE_TRACE() |
125 { | 125 { |
126 visitor->trace(animation); | 126 visitor->trace(animation); |
127 visitor->trace(model); | 127 visitor->trace(model); |
128 visitor->trace(snapshot); | 128 visitor->trace(snapshot); |
129 } | 129 } |
130 | 130 |
131 RawPtrWillBeMember<Animation> animation; | 131 Member<Animation> animation; |
132 RawPtrWillBeMember<KeyframeEffectModelBase> model; | 132 Member<KeyframeEffectModelBase> model; |
133 CompositableStyleSnapshot snapshot; | 133 CompositableStyleSnapshot snapshot; |
134 }; | 134 }; |
135 | 135 |
136 CSSAnimationUpdate() | 136 CSSAnimationUpdate() |
137 { | 137 { |
138 } | 138 } |
139 | 139 |
140 ~CSSAnimationUpdate() | 140 ~CSSAnimationUpdate() |
141 { | 141 { |
142 #if ENABLE(OILPAN) | 142 #if ENABLE(OILPAN) |
(...skipping 25 matching lines...) Expand all Loading... |
168 m_animationsWithStyleUpdates.clear(); | 168 m_animationsWithStyleUpdates.clear(); |
169 m_newTransitions.clear(); | 169 m_newTransitions.clear(); |
170 m_activeInterpolationsForAnimations.clear(); | 170 m_activeInterpolationsForAnimations.clear(); |
171 m_activeInterpolationsForTransitions.clear(); | 171 m_activeInterpolationsForTransitions.clear(); |
172 m_cancelledAnimationNames.clear(); | 172 m_cancelledAnimationNames.clear(); |
173 m_animationsWithPauseToggled.clear(); | 173 m_animationsWithPauseToggled.clear(); |
174 m_cancelledTransitions.clear(); | 174 m_cancelledTransitions.clear(); |
175 m_finishedTransitions.clear(); | 175 m_finishedTransitions.clear(); |
176 } | 176 } |
177 | 177 |
178 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) |
179 { | 179 { |
180 effect->setName(animationName); | 180 effect->setName(animationName); |
181 m_newAnimations.append(NewAnimation(animationName, effect, timing, style
Rule)); | 181 m_newAnimations.append(NewAnimation(animationName, effect, timing, style
Rule)); |
182 } | 182 } |
183 // 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. |
184 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); } |
185 void cancelAnimation(const AtomicString& name, Animation& animation) | 185 void cancelAnimation(const AtomicString& name, Animation& animation) |
186 { | 186 { |
187 m_cancelledAnimationNames.append(name); | 187 m_cancelledAnimationNames.append(name); |
188 m_suppressedAnimations.add(&animation); | 188 m_suppressedAnimations.add(&animation); |
189 } | 189 } |
190 void toggleAnimationPaused(const AtomicString& name) | 190 void toggleAnimationPaused(const AtomicString& name) |
191 { | 191 { |
192 m_animationsWithPauseToggled.append(name); | 192 m_animationsWithPauseToggled.append(name); |
193 } | 193 } |
194 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, PassRefPtrWillBeRawPtr<StyleRuleKey
frames> styleRule) |
195 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule) | |
196 { | 195 { |
197 m_animationsWithUpdates.append(UpdatedAnimation(name, animation, effect,
specifiedTiming, styleRule)); | 196 m_animationsWithUpdates.append(UpdatedAnimation(name, animation, effect,
specifiedTiming, styleRule)); |
198 m_suppressedAnimations.add(animation); | 197 m_suppressedAnimations.add(animation); |
199 } | 198 } |
200 void updateAnimationStyle(Animation* animation, KeyframeEffectModelBase* mod
el, LayoutObject* layoutObject, const ComputedStyle& newStyle) | 199 void updateAnimationStyle(Animation* animation, KeyframeEffectModelBase* mod
el, LayoutObject* layoutObject, const ComputedStyle& newStyle) |
201 { | 200 { |
202 UpdatedAnimationStyle::CompositableStyleSnapshot snapshot; | 201 UpdatedAnimationStyle::CompositableStyleSnapshot snapshot; |
203 if (layoutObject) { | 202 if (layoutObject) { |
204 const ComputedStyle& oldStyle = layoutObject->styleRef(); | 203 const ComputedStyle& oldStyle = layoutObject->styleRef(); |
205 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyOpacity, oldSty
le, newStyle) && model->affects(PropertyHandle(CSSPropertyOpacity))) | 204 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyOpacity, oldSty
le, newStyle) && model->affects(PropertyHandle(CSSPropertyOpacity))) |
206 snapshot.opacity = CSSAnimatableValueFactory::create(CSSProperty
Opacity, newStyle); | 205 snapshot.opacity = CSSAnimatableValueFactory::create(CSSProperty
Opacity, newStyle); |
207 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyTransform, oldS
tyle, newStyle) && model->affects(PropertyHandle(CSSPropertyTransform))) | 206 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyTransform, oldS
tyle, newStyle) && model->affects(PropertyHandle(CSSPropertyTransform))) |
208 snapshot.transform = CSSAnimatableValueFactory::create(CSSProper
tyTransform, newStyle); | 207 snapshot.transform = CSSAnimatableValueFactory::create(CSSProper
tyTransform, newStyle); |
209 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyWebkitFilter, o
ldStyle, newStyle) && model->affects(PropertyHandle(CSSPropertyWebkitFilter))) | 208 if (!CSSPropertyEquality::propertiesEqual(CSSPropertyWebkitFilter, o
ldStyle, newStyle) && model->affects(PropertyHandle(CSSPropertyWebkitFilter))) |
210 snapshot.webkitFilter = CSSAnimatableValueFactory::create(CSSPro
pertyWebkitFilter, newStyle); | 209 snapshot.webkitFilter = CSSAnimatableValueFactory::create(CSSPro
pertyWebkitFilter, newStyle); |
211 } | 210 } |
212 | 211 |
213 m_animationsWithStyleUpdates.append(UpdatedAnimationStyle(animation, mod
el, snapshot)); | 212 m_animationsWithStyleUpdates.append(UpdatedAnimationStyle(animation, mod
el, snapshot)); |
214 } | 213 } |
215 | 214 |
216 void startTransition(CSSPropertyID id, const AnimatableValue* from, const An
imatableValue* to, PassRefPtrWillBeRawPtr<InertEffect> effect) | 215 void startTransition(CSSPropertyID id, const AnimatableValue* from, const An
imatableValue* to, InertEffect* effect) |
217 { | 216 { |
218 effect->setName(getPropertyName(id)); | 217 effect->setName(getPropertyName(id)); |
219 NewTransition newTransition; | 218 NewTransition newTransition; |
220 newTransition.id = id; | 219 newTransition.id = id; |
221 newTransition.from = from; | 220 newTransition.from = from; |
222 newTransition.to = to; | 221 newTransition.to = to; |
223 newTransition.effect = effect; | 222 newTransition.effect = effect; |
224 m_newTransitions.set(id, newTransition); | 223 m_newTransitions.set(id, newTransition); |
225 } | 224 } |
226 bool isCancelledTransition(CSSPropertyID id) const { return m_cancelledTrans
itions.contains(id); } | 225 bool isCancelledTransition(CSSPropertyID id) const { return m_cancelledTrans
itions.contains(id); } |
227 void cancelTransition(CSSPropertyID id) { m_cancelledTransitions.add(id); } | 226 void cancelTransition(CSSPropertyID id) { m_cancelledTransitions.add(id); } |
228 void finishTransition(CSSPropertyID id) { m_finishedTransitions.add(id); } | 227 void finishTransition(CSSPropertyID id) { m_finishedTransitions.add(id); } |
229 | 228 |
230 const WillBeHeapVector<NewAnimation>& newAnimations() const { return m_newAn
imations; } | 229 const HeapVector<NewAnimation>& newAnimations() const { return m_newAnimatio
ns; } |
231 const Vector<AtomicString>& cancelledAnimationNames() const { return m_cance
lledAnimationNames; } | 230 const Vector<AtomicString>& cancelledAnimationNames() const { return m_cance
lledAnimationNames; } |
232 const WillBeHeapHashSet<RawPtrWillBeMember<const Animation>>& suppressedAnim
ations() const { return m_suppressedAnimations; } | 231 const HeapHashSet<Member<const Animation>>& suppressedAnimations() const { r
eturn m_suppressedAnimations; } |
233 const Vector<AtomicString>& animationsWithPauseToggled() const { return m_an
imationsWithPauseToggled; } | 232 const Vector<AtomicString>& animationsWithPauseToggled() const { return m_an
imationsWithPauseToggled; } |
234 const WillBeHeapVector<UpdatedAnimation>& animationsWithUpdates() const { re
turn m_animationsWithUpdates; } | 233 const HeapVector<UpdatedAnimation>& animationsWithUpdates() const { return m
_animationsWithUpdates; } |
235 const WillBeHeapVector<UpdatedAnimationStyle>& animationsWithStyleUpdates()
const { return m_animationsWithStyleUpdates; } | 234 const HeapVector<UpdatedAnimationStyle>& animationsWithStyleUpdates() const
{ return m_animationsWithStyleUpdates; } |
236 | 235 |
237 struct NewTransition { | 236 struct NewTransition { |
238 ALLOW_ONLY_INLINE_ALLOCATION(); | 237 ALLOW_ONLY_INLINE_ALLOCATION(); |
239 public: | 238 public: |
240 DEFINE_INLINE_TRACE() | 239 DEFINE_INLINE_TRACE() |
241 { | 240 { |
242 visitor->trace(from); | 241 visitor->trace(from); |
243 visitor->trace(to); | 242 visitor->trace(to); |
244 visitor->trace(effect); | 243 visitor->trace(effect); |
245 } | 244 } |
246 | 245 |
247 CSSPropertyID id; | 246 CSSPropertyID id; |
248 RawPtrWillBeMember<const AnimatableValue> from; | 247 Member<const AnimatableValue> from; |
249 RawPtrWillBeMember<const AnimatableValue> to; | 248 Member<const AnimatableValue> to; |
250 RefPtrWillBeMember<InertEffect> effect; | 249 Member<InertEffect> effect; |
251 }; | 250 }; |
252 using NewTransitionMap = WillBeHeapHashMap<CSSPropertyID, NewTransition>; | 251 using NewTransitionMap = HeapHashMap<CSSPropertyID, NewTransition>; |
253 const NewTransitionMap& newTransitions() const { return m_newTransitions; } | 252 const NewTransitionMap& newTransitions() const { return m_newTransitions; } |
254 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel
ledTransitions; } | 253 const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancel
ledTransitions; } |
255 const HashSet<CSSPropertyID>& finishedTransitions() const { return m_finishe
dTransitions; } | 254 const HashSet<CSSPropertyID>& finishedTransitions() const { return m_finishe
dTransitions; } |
256 | 255 |
257 void adoptActiveInterpolationsForAnimations(ActiveInterpolationMap& newMap)
{ newMap.swap(m_activeInterpolationsForAnimations); } | 256 void adoptActiveInterpolationsForAnimations(ActiveInterpolationMap& newMap)
{ newMap.swap(m_activeInterpolationsForAnimations); } |
258 void adoptActiveInterpolationsForTransitions(ActiveInterpolationMap& newMap)
{ newMap.swap(m_activeInterpolationsForTransitions); } | 257 void adoptActiveInterpolationsForTransitions(ActiveInterpolationMap& newMap)
{ newMap.swap(m_activeInterpolationsForTransitions); } |
259 const ActiveInterpolationMap& activeInterpolationsForAnimations() const { re
turn m_activeInterpolationsForAnimations; } | 258 const ActiveInterpolationMap& activeInterpolationsForAnimations() const { re
turn m_activeInterpolationsForAnimations; } |
260 const ActiveInterpolationMap& activeInterpolationsForTransitions() const { r
eturn m_activeInterpolationsForTransitions; } | 259 const ActiveInterpolationMap& activeInterpolationsForTransitions() const { r
eturn m_activeInterpolationsForTransitions; } |
261 ActiveInterpolationMap& activeInterpolationsForAnimations() { return m_activ
eInterpolationsForAnimations; } | 260 ActiveInterpolationMap& activeInterpolationsForAnimations() { return m_activ
eInterpolationsForAnimations; } |
262 | 261 |
263 bool isEmpty() const | 262 bool isEmpty() const |
264 { | 263 { |
265 return m_newAnimations.isEmpty() | 264 return m_newAnimations.isEmpty() |
266 && m_cancelledAnimationNames.isEmpty() | 265 && m_cancelledAnimationNames.isEmpty() |
267 && m_suppressedAnimations.isEmpty() | 266 && m_suppressedAnimations.isEmpty() |
268 && m_animationsWithPauseToggled.isEmpty() | 267 && m_animationsWithPauseToggled.isEmpty() |
269 && m_animationsWithUpdates.isEmpty() | 268 && m_animationsWithUpdates.isEmpty() |
270 && m_animationsWithStyleUpdates.isEmpty() | 269 && m_animationsWithStyleUpdates.isEmpty() |
271 && m_newTransitions.isEmpty() | 270 && m_newTransitions.isEmpty() |
272 && m_cancelledTransitions.isEmpty() | 271 && m_cancelledTransitions.isEmpty() |
273 && m_finishedTransitions.isEmpty() | 272 && m_finishedTransitions.isEmpty() |
274 && m_activeInterpolationsForAnimations.isEmpty() | 273 && m_activeInterpolationsForAnimations.isEmpty() |
275 && m_activeInterpolationsForTransitions.isEmpty(); | 274 && m_activeInterpolationsForTransitions.isEmpty(); |
276 } | 275 } |
277 | 276 |
278 DEFINE_INLINE_TRACE() | 277 DEFINE_INLINE_TRACE() |
279 { | 278 { |
280 #if ENABLE(OILPAN) | |
281 visitor->trace(m_newTransitions); | 279 visitor->trace(m_newTransitions); |
282 visitor->trace(m_activeInterpolationsForAnimations); | 280 visitor->trace(m_activeInterpolationsForAnimations); |
283 visitor->trace(m_activeInterpolationsForTransitions); | 281 visitor->trace(m_activeInterpolationsForTransitions); |
284 visitor->trace(m_newAnimations); | 282 visitor->trace(m_newAnimations); |
285 visitor->trace(m_suppressedAnimations); | 283 visitor->trace(m_suppressedAnimations); |
286 visitor->trace(m_animationsWithUpdates); | 284 visitor->trace(m_animationsWithUpdates); |
287 visitor->trace(m_animationsWithStyleUpdates); | 285 visitor->trace(m_animationsWithStyleUpdates); |
288 #endif | |
289 } | 286 } |
290 | 287 |
291 private: | 288 private: |
292 // Order is significant since it defines the order in which new animations | 289 // Order is significant since it defines the order in which new animations |
293 // will be started. Note that there may be multiple animations present | 290 // will be started. Note that there may be multiple animations present |
294 // with the same name, due to the way in which we split up animations with | 291 // with the same name, due to the way in which we split up animations with |
295 // incomplete keyframes. | 292 // incomplete keyframes. |
296 WillBeHeapVector<NewAnimation> m_newAnimations; | 293 HeapVector<NewAnimation> m_newAnimations; |
297 Vector<AtomicString> m_cancelledAnimationNames; | 294 Vector<AtomicString> m_cancelledAnimationNames; |
298 WillBeHeapHashSet<RawPtrWillBeMember<const Animation>> m_suppressedAnimation
s; | 295 HeapHashSet<Member<const Animation>> m_suppressedAnimations; |
299 Vector<AtomicString> m_animationsWithPauseToggled; | 296 Vector<AtomicString> m_animationsWithPauseToggled; |
300 WillBeHeapVector<UpdatedAnimation> m_animationsWithUpdates; | 297 HeapVector<UpdatedAnimation> m_animationsWithUpdates; |
301 WillBeHeapVector<UpdatedAnimationStyle> m_animationsWithStyleUpdates; | 298 HeapVector<UpdatedAnimationStyle> m_animationsWithStyleUpdates; |
302 | 299 |
303 NewTransitionMap m_newTransitions; | 300 NewTransitionMap m_newTransitions; |
304 HashSet<CSSPropertyID> m_cancelledTransitions; | 301 HashSet<CSSPropertyID> m_cancelledTransitions; |
305 HashSet<CSSPropertyID> m_finishedTransitions; | 302 HashSet<CSSPropertyID> m_finishedTransitions; |
306 | 303 |
307 ActiveInterpolationMap m_activeInterpolationsForAnimations; | 304 ActiveInterpolationMap m_activeInterpolationsForAnimations; |
308 ActiveInterpolationMap m_activeInterpolationsForTransitions; | 305 ActiveInterpolationMap m_activeInterpolationsForTransitions; |
309 }; | 306 }; |
310 | 307 |
311 } // namespace blink | 308 } // namespace blink |
312 | 309 |
313 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation); | 310 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::NewAnimation); |
314 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimation); | 311 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimation); |
315 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimationSty
le); | 312 WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::CSSAnimationUpdate::UpdatedAnimationSty
le); |
316 | 313 |
317 #endif | 314 #endif |
OLD | NEW |