re-enable css animations

This commit is contained in:
oneflux 2025-04-21 20:11:10 -07:00
parent aea00355c2
commit 4f34f0c17b

View file

@ -1,32 +0,0 @@
diff --git a/dom/animation/AnimationEffect.cpp b/dom/animation/AnimationEffect.cpp
index 6ef8c30d49..07cad770c9 100644
--- a/dom/animation/AnimationEffect.cpp
+++ b/dom/animation/AnimationEffect.cpp
@@ -108,10 +108,18 @@ ComputedTiming AnimationEffect::GetComputedTimingAt(
// Always return the same object to benefit from return-value optimization.
ComputedTiming result;
+ result.mActiveDuration = aTiming.ActiveDuration();
if (aTiming.Duration()) {
MOZ_ASSERT(aTiming.Duration().ref() >= zeroDuration,
"Iteration duration should be positive");
- result.mDuration = aTiming.Duration().ref();
+ if (result.mActiveDuration != StickyTimeDuration::Forever()) {
+ // On css animations with finite duration, set the duration & active duration to 0
+ result.mDuration = zeroDuration;
+ result.mActiveDuration = zeroDuration;
+ } else {
+ // On infinite-running animations, use the default duration
+ result.mDuration = aTiming.Duration().ref();
+ }
}
MOZ_ASSERT(aTiming.Iterations() >= 0.0 && !std::isnan(aTiming.Iterations()),
@@ -124,7 +132,6 @@ ComputedTiming AnimationEffect::GetComputedTimingAt(
"ValidateIterationStart");
result.mIterationStart = aTiming.IterationStart();
- result.mActiveDuration = aTiming.ActiveDuration();
result.mEndTime = aTiming.EndTime();
result.mFill = aTiming.Fill() == dom::FillMode::Auto ? dom::FillMode::None
: aTiming.Fill();