There are a few places where we currently assume that the keyframe has an
Animation as its owner. We should aim to remove such assumptions.
Here is a short list:
1. EffectStack::ActiveInterpolations: The animation instance is used to check if
it is contained by suppressed_animations.
2. KeyframeEffectReadOnly::Detach/Attached: Inserts/Removes the animation
instance in target's element animations.
3. KeyframeEffectReadOnly::ClearEffects: Restarts the animation on compositor.
4. KeyframeEffectReadOnly::{Start,Cancel,Pause}AnimationOnCompositor: Pass the
animation intance to CompositorAnimations which in turn uses it to detect if
there is already an incompatible animations running. That logic really only
needs animaiton play state and sequence number.
Almost all of these can be replaced with appropriate methods in
AnimationEffectOwner interface.
Comment 1 by majidvp@chromium.org
, Feb 22 2018