Closed Bug 1749789 Opened 4 years ago Closed 4 years ago

[wpt-sync] Sync PR 32350 - Handle infinite end time in timing normalization process.

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox98 fixed)

RESOLVED FIXED
98 Branch
Tracking Status
firefox98 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 32350 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/32350
Details from upstream follow.

Kevin Ellis <kevers@google.com> wrote:

Handle infinite end time in timing normalization process.

When creating an animation, we guard against infinite duration
animations if linked to a scroll timeline. The same safeguards are
not in place if replacing the timeline. In fact, the safeguards are not
necessary as the correct behavior falls out in the math. The only
weird cases are animations with an infinite number of iterations and
zero duration or vice versa. Fortunately, these edge cases are
specifically addressed in the spec
(https://www.w3.org/TR/web-animations-1/#calculating-the-active-duration),
and produce consistent behavior with monotonic or scroll timelines.

This patch adds logic in the timing normalization process to handle an
end time that is infinite prior to normalization. Any update to the
checks in animation creation and updateTiming will be handled in
followup CLs.

Bug: 1281651
Change-Id: I0248b05518353ab194a49513181173c5ccd7852f

Reviewed-on: https://chromium-review.googlesource.com/3383681
WPT-Export-Revision: c002f498ea20b7e4b1a8934a3c4b9ad070a6f5a9

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 1 tests and 16 subtests

Status Summary

Firefox

OK : 1
FAIL : 16

Chrome

CRASH: 1

Safari

OK : 1
FAIL : 16

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/scroll-animations/scroll-timelines/setting-timeline.tentative.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt] (Chrome: CRASH, Safari: OK)
Setting a scroll timeline on a play-pending animation synchronizes currentTime of the animation with the scroll position.: FAIL (Safari: FAIL)
Setting a scroll timeline on a pause-pending animation fixes the currentTime of the animation based on the scroll position once resumed: FAIL (Safari: FAIL)
Setting a scroll timeline on a reversed play-pending animation synchronizes the currentTime of the animation with the scroll position.: FAIL (Safari: FAIL)
Setting a scroll timeline on a running animation synchronizes the currentTime of the animation with the scroll position.: FAIL (Safari: FAIL)
Setting a scroll timeline on a paused animation fixes the currentTime of the animation based on the scroll position when resumed: FAIL (Safari: FAIL)
Setting a scroll timeline on a reversed paused animation fixes the currentTime of the animation based on the scroll position when resumed: FAIL (Safari: FAIL)
Transitioning from a scroll timeline to a document timeline on a running animation preserves currentTime: FAIL (Safari: FAIL)
Transitioning from a scroll timeline to a document timeline on a pause-pending animation preserves currentTime: FAIL (Safari: FAIL)
Transition from a scroll timeline to a document timeline on a reversed paused animation maintains correct currentTime: FAIL (Safari: FAIL)
Transitioning from a scroll timeline to a null timeline on a running animation preserves the play state: FAIL (Safari: FAIL)
Switching from a null timeline to a scroll timeline on an animation with a resolved start time preserved the play state: FAIL (Safari: FAIL)
Switching from one scroll timeline to another updates currentTime: FAIL (Safari: FAIL)
Switching from a document timeline to a scroll timeline updates currentTime when unpaused via CSS.: FAIL (Safari: FAIL)
Switching from a document timeline to a scroll timeline and updating currentTime preserves the new value when unpaused.: FAIL (Safari: FAIL)
Switching from a document timeline to a scroll timeline and updating startTime preserves the new value when play is called.: FAIL (Safari: FAIL)
Switching from a document timeline to a scroll timeline on an infinite duration animation.: FAIL (Safari: FAIL)

Tests Disabled in Gecko Infrastructure

/scroll-animations/scroll-timelines/setting-timeline.tentative.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt] (Chrome: CRASH, Safari: OK)

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch
You need to log in before you can comment on or make changes to this bug.