RESOLVED FIXED 229437
Redefining @keyframes does not work
https://bugs.webkit.org/show_bug.cgi?id=229437
Summary Redefining @keyframes does not work
Mu-An Chiou
Reported 2021-08-23 21:05:07 PDT
Created attachment 436262 [details] HTML file illustrating the problem. After a named @keyframes is defined, re-defining it by setting the styles again via script does not work. In the attachment, clicking on "change color" will replace the CSS with an alternate animation color. This works in Chrome 92 as well as Firefox 91. The demo opt to replace the style tag instead of resetting the style tag content because of https://bugs.webkit.org/show_bug.cgi?id=191265. This problem might be related to https://bugs.webkit.org/show_bug.cgi?id=201736 where CSS variables changes are found ineffective when used in keyframes.
Attachments
HTML file illustrating the problem. (716 bytes, text/html)
2021-08-23 21:05 PDT, Mu-An Chiou
no flags
Patch (5.77 KB, patch)
2022-02-01 06:29 PST, Antoine Quint
no flags
Patch (9.39 KB, patch)
2022-02-01 06:37 PST, Antoine Quint
koivisto: review+
Patch for landing (9.45 KB, patch)
2022-02-01 06:54 PST, Antoine Quint
no flags
Radar WebKit Bug Importer
Comment 1 2021-08-30 21:06:21 PDT
Antoine Quint
Comment 2 2022-02-01 02:47:49 PST
I did some work in this area recently, specifically these: https://bugs.webkit.org/show_bug.cgi?id=234895 https://bugs.webkit.org/show_bug.cgi?id=234955 However, fixing those bugs did not fix this particular bug.
Antoine Quint
Comment 3 2022-02-01 06:29:34 PST
EWS Watchlist
Comment 4 2022-02-01 06:31:09 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
Antoine Quint
Comment 5 2022-02-01 06:37:15 PST
Antti Koivisto
Comment 6 2022-02-01 06:54:16 PST
Comment on attachment 450521 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=450521&action=review > Source/WebCore/style/StyleResolver.cpp:199 > + m_keyframesRuleMap.set(animationName.impl(), WTFMove(rule)); Why does this map use AtomStringImpl* as a key instead of AtomString?
Antoine Quint
Comment 7 2022-02-01 06:54:41 PST
Created attachment 450522 [details] Patch for landing
Antti Koivisto
Comment 8 2022-02-01 06:56:36 PST
Comment on attachment 450521 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=450521&action=review > Source/WebCore/style/StyleResolver.cpp:198 > + AtomString animationName(rule->name()); This is probably not needed, rule->name() is an AtomString
Antoine Quint
Comment 9 2022-02-01 06:57:55 PST
(In reply to Antti Koivisto from comment #8) > Comment on attachment 450521 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=450521&action=review > > > Source/WebCore/style/StyleResolver.cpp:198 > > + AtomString animationName(rule->name()); > > This is probably not needed, rule->name() is an AtomString I have no idea, but I'll look into changing that in a followup patch.
EWS
Comment 10 2022-02-01 08:54:36 PST
Committed r288882 (246634@main): <https://commits.webkit.org/246634@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 450522 [details].
Antoine Quint
Comment 11 2022-02-01 10:21:07 PST
Will address refactor comments in bug 235962. The new WPT test landed in https://github.com/web-platform-tests/wpt/pull/32641.
Note You need to log in before you can comment on or make changes to this bug.