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

Unified Diff: cc/animation/element_animations.h

Issue 2538973002: CC Animation: Make AnimationPlayer to be a unit of activation. (Closed)
Patch Set: Move ScrollOffsetAnimationWasInterrupted to AnimationPlayer Created 4 years 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: cc/animation/element_animations.h
diff --git a/cc/animation/element_animations.h b/cc/animation/element_animations.h
index a9df1df503daa7da0a414468fb12650aec6c1cdd..8aa851f6e936dc3648c3280684402e08618a9e28 100644
--- a/cc/animation/element_animations.h
+++ b/cc/animation/element_animations.h
@@ -11,7 +11,6 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/observer_list.h"
-#include "base/time/time.h"
#include "cc/animation/animation_export.h"
#include "cc/trees/element_id.h"
#include "cc/trees/property_animation_state.h"
@@ -25,13 +24,14 @@ class BoxF;
namespace cc {
-class AnimationEvents;
class AnimationHost;
class AnimationPlayer;
class FilterOperations;
enum class ElementListType;
struct AnimationEvent;
+enum class ActivationType { NORMAL, FORCE };
+
// An ElementAnimations owns a list of all AnimationPlayers, attached to
// the element.
// This is a CC counterpart for blink::ElementAnimations (in 1:1 relationship).
@@ -68,15 +68,6 @@ class CC_ANIMATION_EXPORT ElementAnimations
void PushPropertiesTo(
scoped_refptr<ElementAnimations> element_animations_impl) const;
- void Animate(base::TimeTicks monotonic_time);
-
- void UpdateState(bool start_ready_animations, AnimationEvents* events);
-
- // Make animations affect active elements if and only if they affect
- // pending elements. Any animations that no longer affect any elements
- // are deleted.
- void ActivateAnimations();
-
// Returns true if there are any animations that have neither finished nor
// aborted.
bool HasActiveAnimation() const;
@@ -146,17 +137,7 @@ class CC_ANIMATION_EXPORT ElementAnimations
// be computed.
bool MaximumTargetScale(ElementListType list_type, float* max_scale) 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_;
- }
- void SetScrollOffsetAnimationWasInterrupted();
+ bool ScrollOffsetAnimationWasInterrupted() const;
void SetNeedsPushProperties();
bool needs_push_properties() const { return needs_push_properties_; }
@@ -164,8 +145,6 @@ class CC_ANIMATION_EXPORT ElementAnimations
void UpdateClientAnimationState();
void SetNeedsUpdateImplClientState();
- void UpdateActivationNormal();
-
void NotifyClientOpacityAnimated(float opacity,
bool notify_active_elements,
bool notify_pending_elements);
@@ -186,9 +165,6 @@ class CC_ANIMATION_EXPORT ElementAnimations
ElementAnimations();
~ElementAnimations();
- enum class ActivationType { NORMAL, FORCE };
- void UpdateActivation(ActivationType type);
-
void OnFilterAnimated(ElementListType list_type,
const FilterOperations& filters);
void OnOpacityAnimated(ElementListType list_type, float opacity);
@@ -199,20 +175,16 @@ class CC_ANIMATION_EXPORT ElementAnimations
static TargetProperties GetPropertiesMaskForAnimationState();
+ void UpdateActivation(ActivationType activation_type) const;
+ void Deactivate() const;
+
PlayersList players_list_;
AnimationHost* animation_host_;
ElementId element_id_;
- // This is used to ensure that we don't spam the animation host.
- bool is_active_;
-
- base::TimeTicks last_tick_time_;
-
bool has_element_in_active_list_;
bool has_element_in_pending_list_;
- mutable bool scroll_offset_animation_was_interrupted_;
-
mutable bool needs_push_properties_;
PropertyAnimationState active_state_;

Powered by Google App Engine
This is Rietveld 408576698