RESOLVED FIXED 236491
SVG SMIL restart="never" does not behave correctly
https://bugs.webkit.org/show_bug.cgi?id=236491
Summary SVG SMIL restart="never" does not behave correctly
kari.pihkala
Reported 2022-02-11 01:06:04 PST
Created attachment 451655 [details] SVG SMIL restart.svg test case The attached restart.svg test case shows three rectangles with SMIL animations and the restart attribute set to different values: "never", "always" and "whenNotActive". The green rectangles (restart="always" and restart="whenNotActive") behave correctly. However, the blue rectangle with restart="never" does not behave correctly on Safari. Steps to reproduce: 1. Open restart.svg 2. Click the blue rectangle. 3. Wait until the blue rectangle has moved up for a second and jumps back to its original position. 4. Click the blue rectangle again. The blue rectangle should not move again, but Safari moves it again. Safari behavior for restart="never" seems to match restart="whenNotActive". Expected result: The blue rectangle is moved only once for the first click. Subsequent clicks don't animate the blue rectangle. Firefox and Chrome show the expected result. Tested on Safari Version 15.3 (16612.4.9.1.7, 16612) and Safari Technology Preview Release 139 (Safari 15.4, WebKit 16613.1.14.41.2). Here's the relevant specification: https://svgwg.org/specs/animations/#RestartAttribute
Attachments
SVG SMIL restart.svg test case (1.09 KB, image/svg+xml)
2022-02-11 01:06 PST, kari.pihkala
no flags
Patch (5.04 KB, patch)
2022-02-14 04:34 PST, Antoine Quint
koivisto: review+
ews-feeder: commit-queue-
Patch for landing (5.29 KB, patch)
2022-02-16 02:20 PST, Antoine Quint
no flags
Patch for landing (5.32 KB, patch)
2022-02-16 09:39 PST, Antoine Quint
no flags
Antoine Quint
Comment 1 2022-02-14 02:44:18 PST
It looks like "never" and "whenNotActive" behave the same.
Antoine Quint
Comment 2 2022-02-14 04:31:21 PST
The "restart" value is not checked when we compute a new interval in SVGSMILElement::beginListChanged().
Antoine Quint
Comment 3 2022-02-14 04:34:57 PST
Antti Koivisto
Comment 4 2022-02-14 06:51:33 PST
Comment on attachment 451888 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=451888&action=review > Source/WebCore/ChangeLog:8 > + Test: svg/animations/restart-never-and-begin-click.html WPT?
Antoine Quint
Comment 5 2022-02-16 02:20:09 PST
Created attachment 452164 [details] Patch for landing
Antoine Quint
Comment 6 2022-02-16 02:21:09 PST
Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/32856
EWS Watchlist
Comment 7 2022-02-16 02:22:17 PST
This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess
kari.pihkala
Comment 8 2022-02-16 04:35:18 PST
Thank you for fixing this so fast! I noticed that restart-never-and-begin-click.html in the Patch (attachment 451888 [details]) says: "Setting restart='always' prevents animation with begin='click' from restarting". Shouldn't it say "Setting restart='never' "?
Antoine Quint
Comment 9 2022-02-16 05:28:09 PST
(In reply to kari.pihkala from comment #8) > Thank you for fixing this so fast! You're welcome. Thanks for filing the bug! > I noticed that restart-never-and-begin-click.html in the Patch (attachment > 451888 [details]) says: "Setting restart='always' prevents animation with > begin='click' from restarting". Shouldn't it say "Setting restart='never' "? Oh, indeed! I will fix this when I finally commit the change.
Antoine Quint
Comment 10 2022-02-16 09:39:15 PST
Created attachment 452202 [details] Patch for landing
Antoine Quint
Comment 11 2022-02-17 04:53:45 PST
Radar WebKit Bug Importer
Comment 12 2022-02-17 04:54:18 PST
Note You need to log in before you can comment on or make changes to this bug.