Index: cc/layer_animation_controller.cc |
diff --git a/cc/layer_animation_controller.cc b/cc/layer_animation_controller.cc |
index d5ed278bc57932638f4de36a9a67dc26f2399e3f..76bef283e3c2c830fc02f55839446ee5de66cfe4 100644 |
--- a/cc/layer_animation_controller.cc |
+++ b/cc/layer_animation_controller.cc |
@@ -231,6 +231,19 @@ void LayerAnimationController::removeObserver(LayerAnimationValueObserver* obser |
m_observers.RemoveObserver(observer); |
} |
+bool LayerAnimationController::hasNonOrphanedObserver() |
+{ |
+ if (m_observers.might_have_observers()) { |
+ ObserverListBase<LayerAnimationValueObserver>::Iterator it(m_observers); |
+ LayerAnimationValueObserver* obs; |
+ while ((obs = it.GetNext()) != NULL) { |
+ if (!obs->IsOrphaned()) |
+ return true; |
+ } |
+ } |
+ return false; |
+} |
+ |
void LayerAnimationController::pushNewAnimationsToImplThread(LayerAnimationController* controllerImpl) const |
{ |
// Any new animations owned by the main thread's controller are cloned and adde to the impl thread's controller. |