| Index: Source/core/animation/Animation.h
 | 
| diff --git a/Source/core/animation/Animation.h b/Source/core/animation/Animation.h
 | 
| index 0940b3fe6e246c3325a070cd8a066871dfd18249..0c60f8eb1cc68405816c6c4ce9cae7208cc5854d 100644
 | 
| --- a/Source/core/animation/Animation.h
 | 
| +++ b/Source/core/animation/Animation.h
 | 
| @@ -45,6 +45,7 @@ public:
 | 
|      enum Priority { DefaultPriority, TransitionPriority };
 | 
|  
 | 
|      static PassRefPtr<Animation> create(PassRefPtr<Element>, PassRefPtr<AnimationEffect>, const Timing&, Priority = DefaultPriority, PassOwnPtr<EventDelegate> = nullptr);
 | 
| +    virtual bool isAnimation() const OVERRIDE FINAL { return true; }
 | 
|  
 | 
|      const AnimationEffect::CompositableValueMap* compositableValues() const
 | 
|      {
 | 
| @@ -52,9 +53,17 @@ public:
 | 
|          return m_compositableValues.get();
 | 
|      }
 | 
|  
 | 
| +    bool affects(CSSPropertyID) const;
 | 
|      const AnimationEffect* effect() const { return m_effect.get(); }
 | 
|      Priority priority() const { return m_priority; }
 | 
|  
 | 
| +    bool isCandidateForAnimationOnCompositor() const;
 | 
| +    // Must only be called once and assumes to be part of a player without a start time.
 | 
| +    bool maybeStartAnimationOnCompositor();
 | 
| +    bool hasActiveAnimationsOnCompositor() const;
 | 
| +    bool hasActiveAnimationsOnCompositor(CSSPropertyID) const;
 | 
| +    void cancelAnimationOnCompositor();
 | 
| +
 | 
|  protected:
 | 
|      // Returns whether style recalc was triggered.
 | 
|      virtual bool applyEffects(bool previouslyInEffect);
 | 
| @@ -74,8 +83,12 @@ private:
 | 
|      OwnPtr<AnimationEffect::CompositableValueMap> m_compositableValues;
 | 
|  
 | 
|      Priority m_priority;
 | 
| +
 | 
| +    Vector<int> m_compositorAnimationIds;
 | 
|  };
 | 
|  
 | 
| +DEFINE_TYPE_CASTS(Animation, TimedItem, timedItem, timedItem->isAnimation(), timedItem.isAnimation());
 | 
| +
 | 
|  } // namespace WebCore
 | 
|  
 | 
|  #endif
 | 
| 
 |