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

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

Issue 1515573002: Safely finalize an AnimationTimeline's still-attached Animations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: unconditonally register prefinalizer Created 5 years 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/animation/Animation.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Animation); 61 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Animation);
62 public: 62 public:
63 enum AnimationPlayState { 63 enum AnimationPlayState {
64 Idle, 64 Idle,
65 Pending, 65 Pending,
66 Running, 66 Running,
67 Paused, 67 Paused,
68 Finished 68 Finished
69 }; 69 };
70 70
71 static Animation* create(AnimationEffect*, AnimationTimeline*);
71 ~Animation(); 72 ~Animation();
72 static Animation* create(AnimationEffect*, AnimationTimeline*); 73 void dispose();
73 74
74 // Returns whether the animation is finished. 75 // Returns whether the animation is finished.
75 bool update(TimingUpdateReason); 76 bool update(TimingUpdateReason);
76 77
77 // timeToEffectChange returns: 78 // timeToEffectChange returns:
78 // infinity - if this animation is no longer in effect 79 // infinity - if this animation is no longer in effect
79 // 0 - if this animation requires an update on the next frame 80 // 0 - if this animation requires an update on the next frame
80 // n - if this animation requires an update after 'n' units of time 81 // n - if this animation requires an update after 'n' units of time
81 double timeToEffectChange(); 82 double timeToEffectChange();
82 83
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 double m_endClip; 224 double m_endClip;
224 225
225 unsigned m_sequenceNumber; 226 unsigned m_sequenceNumber;
226 227
227 typedef ScriptPromiseProperty<Member<Animation>, Member<Animation>, Member<D OMException>> AnimationPromise; 228 typedef ScriptPromiseProperty<Member<Animation>, Member<Animation>, Member<D OMException>> AnimationPromise;
228 Member<AnimationPromise> m_finishedPromise; 229 Member<AnimationPromise> m_finishedPromise;
229 Member<AnimationPromise> m_readyPromise; 230 Member<AnimationPromise> m_readyPromise;
230 231
231 Member<AnimationEffect> m_content; 232 Member<AnimationEffect> m_content;
232 Member<AnimationTimeline> m_timeline; 233 Member<AnimationTimeline> m_timeline;
234
233 // Reflects all pausing, including via pauseForTesting(). 235 // Reflects all pausing, including via pauseForTesting().
234 bool m_paused; 236 bool m_paused;
235 bool m_held; 237 bool m_held;
236 bool m_isPausedForTesting; 238 bool m_isPausedForTesting;
237 bool m_isCompositedAnimationDisabledForTesting; 239 bool m_isCompositedAnimationDisabledForTesting;
238 240
239 // This indicates timing information relevant to the animation's effect 241 // This indicates timing information relevant to the animation's effect
240 // has changed by means other than the ordinary progression of time 242 // has changed by means other than the ordinary progression of time
241 bool m_outdated; 243 bool m_outdated;
242 244
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 299
298 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; 300 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer;
299 301
300 bool m_currentTimePending; 302 bool m_currentTimePending;
301 bool m_stateIsBeingUpdated; 303 bool m_stateIsBeingUpdated;
302 }; 304 };
303 305
304 } // namespace blink 306 } // namespace blink
305 307
306 #endif // Animation_h 308 #endif // Animation_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/animation/Animation.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698