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

Unified Diff: Source/core/animation/DocumentTimeline.h

Issue 225073004: Oilpan: Completely move core/animations/ to oilpan's heap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/animation/DocumentTimeline.h
diff --git a/Source/core/animation/DocumentTimeline.h b/Source/core/animation/DocumentTimeline.h
index a151a30b3efe28f5023412a2cfad5648c20b9ec0..a429286a001d2e37e401e93bffe9be1e7e7755c8 100644
--- a/Source/core/animation/DocumentTimeline.h
+++ b/Source/core/animation/DocumentTimeline.h
@@ -36,6 +36,7 @@
#include "core/dom/Element.h"
#include "core/events/Event.h"
#include "platform/Timer.h"
+#include "platform/heap/Handle.h"
#include "wtf/RefCounted.h"
#include "wtf/RefPtr.h"
#include "wtf/Vector.h"
@@ -46,9 +47,9 @@ class Document;
class TimedItem;
// DocumentTimeline is constructed and owned by Document, and tied to its lifecycle.
-class DocumentTimeline : public RefCounted<DocumentTimeline> {
+class DocumentTimeline : public RefCountedWillBeGarbageCollectedFinalized<DocumentTimeline> {
public:
- class PlatformTiming {
+ class PlatformTiming : public NoBaseWillBeGarbageCollectedFinalized<PlatformTiming> {
public:
// Calls DocumentTimeline's wake() method after duration seconds.
@@ -56,10 +57,10 @@ public:
virtual void cancelWake() = 0;
virtual void serviceOnNextFrame() = 0;
virtual ~PlatformTiming() { }
-
+ virtual void trace(Visitor*) = 0;
Mads Ager (chromium) 2014/05/15 08:36:54 Let's provide a default implementation for trace t
haraken 2014/05/16 07:41:22 Done.
};
- static PassRefPtr<DocumentTimeline> create(Document*, PassOwnPtr<PlatformTiming> = nullptr);
+ static PassRefPtrWillBeRawPtr<DocumentTimeline> create(Document*, PassOwnPtrWillBeRawPtr<PlatformTiming> = nullptr);
~DocumentTimeline();
void serviceAnimations(TimingUpdateReason);
@@ -68,11 +69,13 @@ public:
AnimationPlayer* createAnimationPlayer(TimedItem*);
AnimationPlayer* play(TimedItem*);
+#if !ENABLE(OILPAN)
void playerDestroyed(AnimationPlayer* player)
{
ASSERT(m_players.contains(player));
m_players.remove(player);
}
+#endif
// Called from setReadyState() in Document.cpp to set m_zeroTime to
// performance.timing.domInteractive
@@ -91,25 +94,29 @@ public:
void setOutdatedAnimationPlayer(AnimationPlayer*);
bool hasOutdatedAnimationPlayer() const;
- Document* document() { return m_document; }
+ Document* document() { return m_document.get(); }
+#if !ENABLE(OILPAN)
void detachFromDocument();
+#endif
void wake();
+ void trace(Visitor*);
+
protected:
- DocumentTimeline(Document*, PassOwnPtr<PlatformTiming>);
+ DocumentTimeline(Document*, PassOwnPtrWillBeRawPtr<PlatformTiming>);
private:
double m_zeroTime;
- Document* m_document;
+ RawPtrWillBeMember<Document> m_document;
// AnimationPlayers which will be updated on the next frame
// i.e. current, in effect, or had timing changed
- HashSet<RefPtr<AnimationPlayer> > m_playersNeedingUpdate;
- HashSet<AnimationPlayer*> m_players;
+ WillBeHeapHashSet<RefPtrWillBeMember<AnimationPlayer> > m_playersNeedingUpdate;
+ WillBeHeapHashSet<RawPtrWillBeWeakMember<AnimationPlayer> > m_players;
friend class SMILTimeContainer;
static const double s_minimumDelay;
- OwnPtr<PlatformTiming> m_timing;
+ OwnPtrWillBeMember<PlatformTiming> m_timing;
class DocumentTimelineTiming FINAL : public PlatformTiming {
public:
@@ -126,10 +133,11 @@ private:
void timerFired(Timer<DocumentTimelineTiming>*) { m_timeline->wake(); }
+ virtual void trace(Visitor*) OVERRIDE;
+
private:
- DocumentTimeline* m_timeline;
+ RawPtrWillBeMember<DocumentTimeline> m_timeline;
Timer<DocumentTimelineTiming> m_timer;
-
};
friend class AnimationDocumentTimelineTest;

Powered by Google App Engine
This is Rietveld 408576698