зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1354501 - Bail out if we know there is no need to dispatch any animation events in advance of checking which animation event we need. r=birtles
MozReview-Commit-ID: JhOs0CD49R --HG-- extra : rebase_source : dd4c779ed23eb4f728192fdc27536f4409de2c55
This commit is contained in:
Родитель
8b30a3dc7b
Коммит
b5935f0573
|
@ -202,6 +202,9 @@ CSSAnimation::QueueEvents(const StickyTimeDuration& aActiveTime)
|
|||
if (!mEffect) {
|
||||
currentPhase = GetAnimationPhaseWithoutEffect
|
||||
<ComputedTiming::AnimationPhase>(*this);
|
||||
if (currentPhase == mPreviousPhase) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
ComputedTiming computedTiming = mEffect->GetComputedTiming();
|
||||
currentPhase = computedTiming.mPhase;
|
||||
|
|
|
@ -210,6 +210,16 @@ CSSTransition::QueueEvents(const StickyTimeDuration& aActiveTime)
|
|||
intervalEndTime = IntervalEndTime(computedTiming.mActiveDuration);
|
||||
}
|
||||
|
||||
if (mPendingState != PendingState::NotPending &&
|
||||
(mPreviousTransitionPhase == TransitionPhase::Idle ||
|
||||
mPreviousTransitionPhase == TransitionPhase::Pending)) {
|
||||
currentPhase = TransitionPhase::Pending;
|
||||
}
|
||||
|
||||
if (currentPhase == mPreviousTransitionPhase) {
|
||||
return;
|
||||
}
|
||||
|
||||
// TimeStamps to use for ordering the events when they are dispatched. We
|
||||
// use a TimeStamp so we can compare events produced by different elements,
|
||||
// perhaps even with different timelines.
|
||||
|
@ -219,13 +229,6 @@ CSSTransition::QueueEvents(const StickyTimeDuration& aActiveTime)
|
|||
TimeStamp startTimeStamp = ElapsedTimeToTimeStamp(intervalStartTime);
|
||||
TimeStamp endTimeStamp = ElapsedTimeToTimeStamp(intervalEndTime);
|
||||
|
||||
if (mPendingState != PendingState::NotPending &&
|
||||
(mPreviousTransitionPhase == TransitionPhase::Idle ||
|
||||
mPreviousTransitionPhase == TransitionPhase::Pending))
|
||||
{
|
||||
currentPhase = TransitionPhase::Pending;
|
||||
}
|
||||
|
||||
AutoTArray<AnimationEventInfo, 3> events;
|
||||
|
||||
auto appendTransitionEvent = [&](EventMessage aMessage,
|
||||
|
|
Загрузка…
Ссылка в новой задаче