RESOLVED FIXED322936
REGRESSION(294049@main): paused and seeked animation finishes when resumed after a rate-adjusted animation
https://bugs.webkit.org/show_bug.cgi?id=322936
Summary REGRESSION(294049@main): paused and seeked animation finishes when resumed af...
hello
Reported 2026-08-30 05:30:46 PDT
Created attachment 481216 [details] HTML file that reproduces the described problem. A paused Web Animations API animation can incorrectly finish when it is resumed after a separate animation running at a non-default playback rate. webkit-animation-bug.html demonstrates the problem. In Chrome and Firefox, the black dot smoothly animates when resumed. In Safari, the dot just teleports to the end when resumed. Notes from reduction: - The target must be paused and then seeked. Seeking before pausing does not reproduce. - A separate, non-empty animation running at a non-default rate is required. - An empty-keyframe animation, no separate animation, or a separate animation at 1x does not reproduce. - Calling target.play() directly from the animation-frame callback behaves correctly. Resuming it in a subsequent task reproduces consistently. (Additionally, in STP the dot glyph doesn't render correctly whereas it does in Safari beta. It looks like "â—" in STP, no idea why didn't dig into it).
Attachments
HTML file that reproduces the described problem. (1.48 KB, text/html)
2026-08-30 05:30 PDT, hello
no flags
Radar WebKit Bug Importer
Comment 1 2026-09-01 01:22:33 PDT
Antoine Quint
Comment 2 2026-09-01 02:27:14 PDT
Thanks for the report Sam! Changing the test to use non-accelerated properties reproduces the issue still, so it's not about the accelerated animation codepath but likely something at the timing model level.
Antoine Quint
Comment 3 2026-09-01 02:27:53 PDT
As for the glyph, you'd need to specify the encoding presumably. I'm not sure why this behavior would have changed.
Antoine Quint
Comment 4 2026-09-01 02:28:44 PDT
I actually see the issue reproducing even without the non-default playback rate on the "root" animation.
Antoine Quint
Comment 5 2026-09-01 03:33:51 PDT
I think this may be fallout from 294049@main, we fail to re-compute `WebAnimation::m_pendingStartTime` when calling `play()` on the paused animation.
Antoine Quint
Comment 6 2026-09-01 03:37:47 PDT
At the very least this used to work with macOS Sequoia 15.7.3, so this has regressed.
Antoine Quint
Comment 7 2026-09-01 04:06:51 PDT
I confirmed this regressed with 294049@main.
hello
Comment 8 2026-09-01 04:23:03 PDT
Amazing, thanks for jumping on this so quickly! Sorry the repro wasn’t quite spot on, I was losing my mind trying to figure it out.
Antoine Quint
Comment 9 2026-09-01 05:09:10 PDT
Antoine Quint
Comment 10 2026-09-01 05:11:15 PDT
Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/62351
EWS
Comment 11 2026-09-01 06:42:46 PDT
Committed 320238@main (1aa3db9eb328): <https://commits.webkit.org/320238@main> Reviewed commits have been landed. Closing PR #72934 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.