Bug 1074054 part 1 - Add Animation::IsInEffect; r=dbaron

This patch adds a utility method to return if an animation is "in effect" or not
as defined by Web Animations:

  http://w3c.github.io/web-animations/#in-effect

It also moves the utility method for querying if an animation is "current"
(IsCurrent) to the .cpp file since it is fairly long. (Bug 1046055 makes one of
the callers of IsCurrent inline-able which should offset any cost introduced by
this no longer being inline-able.)
This commit is contained in:
Brian Birtles 2014-10-02 15:14:14 +09:00
Родитель cf85a7879b
Коммит add5d0af0e
2 изменённых файлов: 25 добавлений и 9 удалений

Просмотреть файл

@ -227,6 +227,29 @@ Animation::ActiveDuration(const AnimationTiming& aTiming)
aTiming.mIterationDuration.MultDouble(aTiming.mIterationCount)); aTiming.mIterationDuration.MultDouble(aTiming.mIterationCount));
} }
bool
Animation::IsCurrent() const
{
if (IsFinishedTransition()) {
return false;
}
ComputedTiming computedTiming = GetComputedTiming();
return computedTiming.mPhase == ComputedTiming::AnimationPhase_Before ||
computedTiming.mPhase == ComputedTiming::AnimationPhase_Active;
}
bool
Animation::IsInEffect() const
{
if (IsFinishedTransition()) {
return false;
}
ComputedTiming computedTiming = GetComputedTiming();
return computedTiming.mTimeFraction != ComputedTiming::kNullTimeFraction;
}
bool bool
Animation::HasAnimationOfProperty(nsCSSProperty aProperty) const Animation::HasAnimationOfProperty(nsCSSProperty aProperty) const
{ {

Просмотреть файл

@ -224,15 +224,8 @@ public:
mIsFinishedTransition = true; mIsFinishedTransition = true;
} }
bool IsCurrent() const { bool IsCurrent() const;
if (IsFinishedTransition()) { bool IsInEffect() const;
return false;
}
ComputedTiming computedTiming = GetComputedTiming();
return computedTiming.mPhase == ComputedTiming::AnimationPhase_Before ||
computedTiming.mPhase == ComputedTiming::AnimationPhase_Active;
}
enum { enum {
LAST_NOTIFICATION_NONE = uint64_t(-1), LAST_NOTIFICATION_NONE = uint64_t(-1),