| Index: cc/animation/animation_player.h
 | 
| diff --git a/cc/animation/animation_player.h b/cc/animation/animation_player.h
 | 
| index 99a8d985a647f7d5ff67eeba166fabe52704cd77..62c9d54b2b2412a8886e538fcfce249a945a3178 100644
 | 
| --- a/cc/animation/animation_player.h
 | 
| +++ b/cc/animation/animation_player.h
 | 
| @@ -19,6 +19,7 @@
 | 
|  namespace cc {
 | 
|  
 | 
|  class AnimationDelegate;
 | 
| +class AnimationEvents;
 | 
|  class AnimationHost;
 | 
|  class AnimationTimeline;
 | 
|  struct AnimationEvent;
 | 
| @@ -75,6 +76,12 @@ class CC_ANIMATION_EXPORT AnimationPlayer
 | 
|  
 | 
|    void PushPropertiesTo(AnimationPlayer* player_impl);
 | 
|  
 | 
| +  void Animate(base::TimeTicks monotonic_time);
 | 
| +  void UpdateState(bool start_ready_animations, AnimationEvents* events);
 | 
| +
 | 
| +  void UpdateActivation(ActivationType type);
 | 
| +  void Deactivate();
 | 
| +
 | 
|    // AnimationDelegate routing.
 | 
|    bool NotifyAnimationStarted(const AnimationEvent& event);
 | 
|    bool NotifyAnimationFinished(const AnimationEvent& event);
 | 
| @@ -152,6 +159,17 @@ class CC_ANIMATION_EXPORT AnimationPlayer
 | 
|    void GetPropertyAnimationState(PropertyAnimationState* pending_state,
 | 
|                                   PropertyAnimationState* active_state) const;
 | 
|  
 | 
| +  // When a scroll animation is removed on the main thread, its compositor
 | 
| +  // thread counterpart continues producing scroll deltas until activation.
 | 
| +  // These scroll deltas need to be cleared at activation, so that the active
 | 
| +  // element's scroll offset matches the offset provided by the main thread
 | 
| +  // rather than a combination of this offset and scroll deltas produced by
 | 
| +  // the removed animation. This is to provide the illusion of synchronicity to
 | 
| +  // JS that simultaneously removes an animation and sets the scroll offset.
 | 
| +  bool scroll_offset_animation_was_interrupted() const {
 | 
| +    return scroll_offset_animation_was_interrupted_;
 | 
| +  }
 | 
| +
 | 
|   private:
 | 
|    friend class base::RefCounted<AnimationPlayer>;
 | 
|  
 | 
| @@ -195,6 +213,11 @@ class CC_ANIMATION_EXPORT AnimationPlayer
 | 
|    // previous attempt at starting animations failed to start all animations.
 | 
|    bool needs_to_start_animations_;
 | 
|  
 | 
| +  // This is used to ensure that we don't spam the animation host.
 | 
| +  bool is_active_;
 | 
| +
 | 
| +  bool scroll_offset_animation_was_interrupted_;
 | 
| +
 | 
|    DISALLOW_COPY_AND_ASSIGN(AnimationPlayer);
 | 
|  };
 | 
|  
 | 
| 
 |