Closed Bug 1828697 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 39596 - Fix incorrect iniital rendering of a scroll-driven animation

Categories

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

task

Tracking

(firefox114 fixed)

RESOLVED FIXED
114 Branch
Tracking Status
firefox114 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Kevin Ellis <kevers@google.com> wrote:

Fix incorrect iniital rendering of a scroll-driven animation

Partial fix that addresses the initial rendering being incorrect after
changing the animation range. The style was fixed on a scroll, but
initially incorrect.

Issues addressed in this patch;

  • Sampling time for InertEffect did not account for animation range or
    being at the boundary of a scroll timeline.
  • Was unsafe to change an animation while at the edge the active
    interval due to floating point precision errors.
  • Animation::setTimeline did not align with spec when going from
    a scroll to a null timeline.

bug: 1421690, 1224809
Change-Id: Iad3a8728f0f25935a18cc8bf4d0fce51d5aa8787
Reviewed-on: https://chromium-review.googlesource.com/4427495
WPT-Export-Revision: 2e61fd0e3fa725c63312d528f66471c958b9cf86

CI Results

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

Total 9 tests

Status Summary

Firefox

OK : 4
PASS : 22[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] 23[Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt]
FAIL : 27[Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] 28[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] 40[GitHub]
TIMEOUT: 1
ERROR : 2

Chrome

OK : 6
PASS : 56
FAIL : 12

Safari

OK : 4
FAIL : 40
TIMEOUT: 1
ERROR : 2

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 [wpt.fyi]: OK [GitHub], SKIP [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Setting a scroll timeline on a play-pending animation synchronizes currentTime of the animation with the scroll position.: FAIL (Chrome: PASS, 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 (Chrome: PASS, Safari: FAIL)
    • Setting a scroll timeline on a reversed play-pending animation synchronizes the currentTime of the animation with the scroll position.: FAIL (Chrome: PASS, Safari: FAIL)
    • Setting a scroll timeline on a running animation synchronizes the currentTime of the animation with the scroll position.: FAIL (Chrome: PASS, Safari: FAIL)
    • Setting a scroll timeline on a paused animation fixes the currentTime of the animation based on the scroll position when resumed: FAIL (Chrome: PASS, 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 (Chrome: PASS, Safari: FAIL)
    • Transitioning from a scroll timeline to a document timeline on a running animation preserves currentTime: FAIL (Chrome: PASS, Safari: FAIL)
    • Transitioning from a scroll timeline to a document timeline on a pause-pending animation preserves currentTime: FAIL (Chrome: PASS, Safari: FAIL)
    • Transition from a scroll timeline to a document timeline on a reversed paused animation maintains correct currentTime: FAIL (Chrome: PASS, Safari: FAIL)
    • Transitioning from a scroll timeline to a null timeline on a running animation preserves current progress.: FAIL (Chrome: 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 (Chrome: PASS, Safari: FAIL)
    • Switching from one scroll timeline to another updates currentTime: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching from a document timeline to a scroll timeline updates currentTime when unpaused via CSS.: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching from a document timeline to a scroll timeline and updating currentTime preserves the new value when unpaused.: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching from a document timeline to a scroll timeline and updating startTime preserves the new value when play is called.: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching from a document timeline to a scroll timeline on an infinite duration animation.: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/view-timelines/change-animation-range-updates-play-state.html [wpt.fyi]: OK [GitHub], SKIP [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Changing the animation range updates the play state: FAIL (Chrome: FAIL, Safari: FAIL)
  • /scroll-animations/css/animation-timeline-ignored.tentative.html [wpt.fyi]
    • Changing animation-timeline changes the timeline (sanity check): FAIL [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, GitHub], PASS [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: PASS, Safari: FAIL)
    • animation-timeline ignored after setting timeline with JS (ScrollTimeline from JS): FAIL (Chrome: PASS, Safari: FAIL)
    • animation-timeline ignored after setting timeline with JS (ScrollTimeline from CSS): FAIL (Chrome: PASS, Safari: FAIL)
    • animation-timeline ignored after setting timeline with JS (document timeline): FAIL (Chrome: PASS, Safari: FAIL)
    • animation-timeline ignored after setting timeline with JS (null): FAIL (Chrome: FAIL, Safari: FAIL)
  • /scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html [wpt.fyi]: ERROR [GitHub], OK [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: ERROR)
    • scroll-timeline-name affects subsequent siblings when changed: FAIL (Chrome: PASS)
    • scroll-timeline-name on inserted element affects subsequent siblings: FAIL (Chrome: PASS)
    • scroll-timeline-name on removed element affects subsequent siblings: FAIL (Chrome: FAIL)
    • scroll-timeline-name on element leaving display:none affects subsequent siblings: FAIL (Chrome: PASS)
    • scroll-timeline-name on element becoming display:none affects subsequent siblings: FAIL (Chrome: FAIL)
    • scroll-timeline-name on element not resolved until element becomes visible: FAIL (Chrome: PASS)
    • Change in scroll-timeline-name to match animation timeline updates animation.: FAIL (Chrome: PASS)
    • Change in scroll-timeline-name to no longer match animation timeline updates animation.: FAIL (Chrome: FAIL)
    • Timeline lookup finds next candidate when element is removed: FAIL (Chrome: PASS)
    • Timeline lookup updates candidate when closer match available.: FAIL (Chrome: PASS)
    • Timeline lookup updates candidate when match becomes available.: FAIL (Chrome: PASS)
  • /scroll-animations/css/scroll-timeline-dynamic.tentative.html [wpt.fyi]
    • Switching between document and scroll timelines [immediate]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: PASS, Safari: FAIL)
    • Switching between document and scroll timelines [scroll]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: PASS, Safari: FAIL)
    • Switching pending animation from document to scroll timelines [immediate]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: PASS, Safari: FAIL)
    • Switching pending animation from document to scroll timelines [scroll]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: PASS, Safari: FAIL)
    • Changing computed value of animation-timeline changes effective timeline [immediate]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: PASS, Safari: FAIL)
    • Changing computed value of animation-timeline changes effective timeline [scroll]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: PASS, Safari: FAIL)
    • Changing to/from animation-timeline:none [immediate]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: FAIL, Safari: FAIL)
    • Changing to/from animation-timeline:none [scroll]: FAIL [GitHub], PASS [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: FAIL, Safari: FAIL)
    • Changing scroll-timeline on preceding elements affects target element [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Changing scroll-timeline on preceding elements affects target element [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Reverse animation direction [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Reverse animation direction [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines while paused [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines while paused [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines and pausing at the same time [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines and pausing at the same time [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/view-timeline-dynamic.html [wpt.fyi]: ERROR [GitHub], OK [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: ERROR)
    • Dynamically changing view-timeline-name: FAIL (Chrome: PASS)
    • Element with view-timeline becoming display:none: FAIL (Chrome: FAIL)
  • /scroll-animations/css/scroll-timeline-update-reversed-animation.html [wpt.fyi]: FAIL (Chrome: FAIL, Safari: FAIL)
  • /scroll-animations/css/view-timeline-range-update-reversed-animation.html [wpt.fyi]: TIMEOUT (Chrome: FAIL, Safari: TIMEOUT)
  • /scroll-animations/css/view-timeline-range-update.html [wpt.fyi]: FAIL (Chrome: FAIL, Safari: FAIL)

Tests Disabled in Gecko Infrastructure

  • /scroll-animations/scroll-timelines/setting-timeline.tentative.html [wpt.fyi]: OK [GitHub], SKIP [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /scroll-animations/view-timelines/change-animation-range-updates-play-state.html [wpt.fyi]: OK [GitHub], SKIP [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-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ba2d716006e5 [wpt PR 39596] - Fix incorrect initial rendering of a scroll-driven animation, a=testonly https://hg.mozilla.org/integration/autoland/rev/a3c800dd9447 [wpt PR 39596] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 114 Branch
You need to log in before you can comment on or make changes to this bug.