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

Side by Side Diff: Source/core/animation/Animation.h

Issue 1120003002: [Oilpan] Migrate most classes under core/animations to Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Resize expect size of Persistent Created 5 years, 6 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
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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "public/platform/WebCompositorAnimationPlayerClient.h" 44 #include "public/platform/WebCompositorAnimationPlayerClient.h"
45 #include "wtf/RefPtr.h" 45 #include "wtf/RefPtr.h"
46 46
47 namespace blink { 47 namespace blink {
48 48
49 class AnimationTimeline; 49 class AnimationTimeline;
50 class Element; 50 class Element;
51 class ExceptionState; 51 class ExceptionState;
52 class WebCompositorAnimationPlayer; 52 class WebCompositorAnimationPlayer;
53 53
54 class CORE_EXPORT Animation final 54 class CORE_EXPORT Animation final : public RefCountedGarbageCollectedEventTarget WithInlineData<Animation>, public ActiveDOMObject, public WebCompositorAnimation Delegate, public WebCompositorAnimationPlayerClient {
55 : public EventTargetWithInlineData
56 , public RefCountedWillBeNoBase<Animation>
57 , public ActiveDOMObject
58 , public WebCompositorAnimationDelegate
59 , public WebCompositorAnimationPlayerClient {
60 DEFINE_WRAPPERTYPEINFO(); 55 DEFINE_WRAPPERTYPEINFO();
61 REFCOUNTED_EVENT_TARGET(Animation); 56 DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(RefCountedGarbageCollected<A nimation>);
62 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Animation); 57 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Animation);
58 USING_PRE_FINALIZER(Animation, disposeAnimation);
sof 2015/05/30 11:34:04 No need to add a TODO, but eagerly finalizing Anim
peria 2015/06/01 04:43:01 Done.
63 public: 59 public:
64 enum AnimationPlayState { 60 enum AnimationPlayState {
65 Idle, 61 Idle,
66 Pending, 62 Pending,
67 Running, 63 Running,
68 Paused, 64 Paused,
69 Finished 65 Finished
70 }; 66 };
71 67
72 ~Animation(); 68 ~Animation();
73 static PassRefPtrWillBeRawPtr<Animation> create(AnimationEffect*, AnimationT imeline*); 69 void disposeAnimation();
70 static Animation* create(AnimationEffect*, AnimationTimeline*);
74 71
75 // Returns whether the animation is finished. 72 // Returns whether the animation is finished.
76 bool update(TimingUpdateReason); 73 bool update(TimingUpdateReason);
77 74
78 // timeToEffectChange returns: 75 // timeToEffectChange returns:
79 // infinity - if this animation is no longer in effect 76 // infinity - if this animation is no longer in effect
80 // 0 - if this animation requires an update on the next frame 77 // 0 - if this animation requires an update on the next frame
81 // n - if this animation requires an update after 'n' units of time 78 // n - if this animation requires an update after 'n' units of time
82 double timeToEffectChange(); 79 double timeToEffectChange();
83 80
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 void notifyAnimationStarted(double monotonicTime, int group) override; 199 void notifyAnimationStarted(double monotonicTime, int group) override;
203 void notifyAnimationFinished(double monotonicTime, int group) override { } 200 void notifyAnimationFinished(double monotonicTime, int group) override { }
204 201
205 AnimationPlayState m_playState; 202 AnimationPlayState m_playState;
206 double m_playbackRate; 203 double m_playbackRate;
207 double m_startTime; 204 double m_startTime;
208 double m_holdTime; 205 double m_holdTime;
209 206
210 unsigned m_sequenceNumber; 207 unsigned m_sequenceNumber;
211 208
212 typedef ScriptPromiseProperty<RawPtrWillBeMember<Animation>, RawPtrWillBeMem ber<Animation>, Member<DOMException>> AnimationPromise; 209 typedef ScriptPromiseProperty<Member<Animation>, Member<Animation>, Member<D OMException>> AnimationPromise;
213 PersistentWillBeMember<AnimationPromise> m_finishedPromise; 210 Member<AnimationPromise> m_finishedPromise;
214 PersistentWillBeMember<AnimationPromise> m_readyPromise; 211 Member<AnimationPromise> m_readyPromise;
215 212
216 RefPtrWillBeMember<AnimationEffect> m_content; 213 Member<AnimationEffect> m_content;
217 RawPtrWillBeMember<AnimationTimeline> m_timeline; 214 Member<AnimationTimeline> m_timeline;
218 // Reflects all pausing, including via pauseForTesting(). 215 // Reflects all pausing, including via pauseForTesting().
219 bool m_paused; 216 bool m_paused;
220 bool m_held; 217 bool m_held;
221 bool m_isPausedForTesting; 218 bool m_isPausedForTesting;
222 219
223 // This indicates timing information relevant to the animation's effect 220 // This indicates timing information relevant to the animation's effect
224 // has changed by means other than the ordinary progression of time 221 // has changed by means other than the ordinary progression of time
225 bool m_outdated; 222 bool m_outdated;
226 223
227 bool m_finished; 224 bool m_finished;
(...skipping 30 matching lines...) Expand all
258 SetCompositorPendingWithSourceChanged, 255 SetCompositorPendingWithSourceChanged,
259 DoNotSetCompositorPending, 256 DoNotSetCompositorPending,
260 }; 257 };
261 258
262 class PlayStateUpdateScope { 259 class PlayStateUpdateScope {
263 STACK_ALLOCATED(); 260 STACK_ALLOCATED();
264 public: 261 public:
265 PlayStateUpdateScope(Animation&, TimingUpdateReason, CompositorPendingCh ange = SetCompositorPending); 262 PlayStateUpdateScope(Animation&, TimingUpdateReason, CompositorPendingCh ange = SetCompositorPending);
266 ~PlayStateUpdateScope(); 263 ~PlayStateUpdateScope();
267 private: 264 private:
268 RawPtrWillBeMember<Animation> m_animation; 265 Member<Animation> m_animation;
269 AnimationPlayState m_initialPlayState; 266 AnimationPlayState m_initialPlayState;
270 CompositorPendingChange m_compositorPendingChange; 267 CompositorPendingChange m_compositorPendingChange;
271 }; 268 };
272 269
273 // This mirrors the known compositor state. It is created when a compositor 270 // This mirrors the known compositor state. It is created when a compositor
274 // animation is started. Updated once the start time is known and each time 271 // animation is started. Updated once the start time is known and each time
275 // modifications are pushed to the compositor. 272 // modifications are pushed to the compositor.
276 OwnPtr<CompositorState> m_compositorState; 273 OwnPtr<CompositorState> m_compositorState;
277 bool m_compositorPending; 274 bool m_compositorPending;
278 int m_compositorGroup; 275 int m_compositorGroup;
279 276
280 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; 277 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer;
281 278
282 bool m_currentTimePending; 279 bool m_currentTimePending;
283 bool m_stateIsBeingUpdated; 280 bool m_stateIsBeingUpdated;
284 }; 281 };
285 282
286 } // namespace blink 283 } // namespace blink
287 284
288 #endif // Animation_h 285 #endif // Animation_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698