| 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(); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |