Index: cc/layer_animation_controller.h |
diff --git a/cc/layer_animation_controller.h b/cc/layer_animation_controller.h |
index 786887be39e9f1881479fa896df7bc5bf300b2f5..5ffe12371cd360f8ecc063786467d7f442e33972 100644 |
--- a/cc/layer_animation_controller.h |
+++ b/cc/layer_animation_controller.h |
@@ -32,6 +32,16 @@ class CC_EXPORT LayerAnimationController |
: public base::RefCounted<LayerAnimationController>, |
public LayerAnimationEventObserver { |
public: |
+ // Controllers belonging to orphan layers begin in the |
+ // NeverWaitedForLayout state. Once an animation is added to such |
+ // a controller, it moves into the WaitingForLayout state, and then moves |
+ // into the WaitedForLayout state after the next layout. |
+ enum OrphanWaitStatus { |
+ NeverWaitedForLayout = 0, |
+ WaitingForLayout, |
+ WaitedForLayout |
+ }; |
+ |
static scoped_refptr<LayerAnimationController> create(int id); |
int id() const { return m_id; } |
@@ -77,10 +87,16 @@ public: |
void setForceSync() { m_forceSync = true; } |
void setAnimationRegistrar(AnimationRegistrar*); |
+ AnimationRegistrar* animationRegistrar() { return m_registrar; } |
void addObserver(LayerAnimationValueObserver*); |
void removeObserver(LayerAnimationValueObserver*); |
+ bool hasNonOrphanedObserver(); |
+ |
+ void setOrphanWaitStatus(OrphanWaitStatus status) { m_orphanWaitStatus = status; } |
+ OrphanWaitStatus orphanWaitStatus() const { return m_orphanWaitStatus; } |
+ |
protected: |
friend class base::RefCounted<LayerAnimationController>; |
@@ -123,6 +139,8 @@ private: |
ObserverList<LayerAnimationValueObserver> m_observers; |
+ OrphanWaitStatus m_orphanWaitStatus; |
+ |
DISALLOW_COPY_AND_ASSIGN(LayerAnimationController); |
}; |