Bug 245147
Summary: | Safari 16 regression: CSS animations stutter during DOM mutation | ||
---|---|---|---|
Product: | WebKit | Reporter: | alex |
Component: | Animations | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | alex, dino, graouts, graouts, heystoneybatter, karlcow, mrobinson, webkit-bug-importer |
Priority: | P2 | Keywords: | BrowserCompat, InRadar |
Version: | Safari Technology Preview | ||
Hardware: | All | ||
OS: | Unspecified |
alex
Reproduction:
https://codepen.io/aeharding/pen/poVEmWO
After clicking "Do an intensive task", you will see the spinner stops momentarily/stutter.
This regression started occurring after upgrading to Safari 16 (both iOS 16 and m1 macbook air running macOS 12.6) yesterday.
When I test on an older iOS (15) version, an older macOS version (12.2 tested on a different macbook air m1), Chrome or Firefox or iPadOS, the CSS animation does not stutter at all.
This is a problem for any website that has a loading indicator while rendering a large amount of content to the DOM.
This is also occurring on Safari Technology Preview 153 with macOS 12.6.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Antoine Quint
This appears to be specific to rotate animations, a scale animation does not exhibit the same problem.
Radar WebKit Bug Importer
<rdar://problem/99881231>
M
I noticed the rotation animation issue in a WKWebView app I was editing. The app uses the same animation elsewhere without issue but it stutters now in iOS16 on one page that does some ML processing. It worked perfectly in all earlier versions iOS. Antoine Quint is correct though that scale animations do not seem to have this issue.
Additionally, I have been seeing issues with opacity animations in a number of places. For example, I noticed the NYT Spelling Bee mobile site suddenly had janky fade-ins and I compared on my iOS16 phone and my partner's 15.6 phone. The fade-ins were smooth on 15.6. So perhaps something is going on with CSS3 animations more broadly?
Antoine Quint
The problem goes away if we add an intermediary keyframe like so:
50% { transform: rotate(180deg) }
Need to retest now that the fix for bug 243864 landed, could be relevant.
Antoine Quint
Confirmed that this progressed with 255723@main.
*** This bug has been marked as a duplicate of bug 243864 ***