#ifndef AnimationNode_h
#define AnimationNode_h
+#include "bindings/core/v8/ScriptWrappable.h"
#include "core/animation/Timing.h"
#include "platform/heap/Handle.h"
#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
#include "wtf/RefCounted.h"
-namespace WebCore {
+namespace blink {
class AnimationPlayer;
class AnimationNode;
return std::numeric_limits<double>::quiet_NaN();
}
-class AnimationNode : public RefCountedWillBeGarbageCollectedFinalized<AnimationNode> {
+class AnimationNode : public RefCountedWillBeGarbageCollectedFinalized<AnimationNode>, public ScriptWrappable {
friend class AnimationPlayer; // Calls attach/detach, updateInheritedTime.
public:
// Note that logic in CSSAnimations depends on the order of these values.
PhaseNone,
};
- class EventDelegate {
+ class EventDelegate : public NoBaseWillBeGarbageCollectedFinalized<EventDelegate> {
public:
- virtual ~EventDelegate() { };
+ virtual ~EventDelegate() { }
virtual void onEventCondition(const AnimationNode*) = 0;
+ virtual void trace(Visitor*) { }
};
virtual ~AnimationNode() { }
const AnimationPlayer* player() const { return m_player; }
AnimationPlayer* player() { return m_player; }
- AnimationPlayer* player(bool& isNull) { isNull = !m_player; return m_player; }
const Timing& specifiedTiming() const { return m_timing; }
PassRefPtrWillBeRawPtr<AnimationNodeTiming> timing();
void updateSpecifiedTiming(const Timing&);
virtual void trace(Visitor*);
protected:
- explicit AnimationNode(const Timing&, PassOwnPtr<EventDelegate> = nullptr);
+ explicit AnimationNode(const Timing&, PassOwnPtrWillBeRawPtr<EventDelegate> = nullptr);
// When AnimationNode receives a new inherited time via updateInheritedTime
// it will (if necessary) recalculate timings and (if necessary) call
const double m_startTime;
RawPtrWillBeMember<AnimationPlayer> m_player;
Timing m_timing;
- OwnPtr<EventDelegate> m_eventDelegate;
+ OwnPtrWillBeMember<EventDelegate> m_eventDelegate;
mutable struct CalculatedTiming {
Phase phase;
const CalculatedTiming& ensureCalculated() const;
};
-} // namespace WebCore
+} // namespace blink
#endif