Bug 182436 - animation-play-state: paused causes very high cpu load because of style invalidation loop
Summary: animation-play-state: paused causes very high cpu load because of style inval...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Animations (show other bugs)
Version: Safari Technology Preview
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-02-02 08:31 PST by Steffen Deusch
Modified: 2018-05-15 02:00 PDT (History)
9 users (show)

See Also:


Attachments
patch (5.29 KB, patch)
2018-05-14 10:01 PDT, Antti Koivisto
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Steffen Deusch 2018-02-02 08:31:57 PST
Hello everyone,
when using animation-play-state: paused on an animated element and using a transition on a parent element, Safari, Safari TP and WebKit Nightly are suddenly recalculating styles all the time, causing a high cpu load. Opening the Web Inspector causes an even higher CPU load (using WebKit Nightly):

https://files.steffend.me/public/webkitbug/webkit-style-invalidation.html
Try to open the page in Safari and hover over the card. Then open the Web Inspector.
The same is happening in MobileSafari on iOS 11.2(.x), causing the battery to drain fast.

Next, try opening:
https://files.steffend.me/public/webkitbug/webkit-style-invalidation-playing.html
There, the issue doesn't happen, as the animation is not paused (also no high cpu usage in the Web Inspector).
Comment 1 Radar WebKit Bug Importer 2018-02-02 21:25:05 PST
<rdar://problem/37182562>
Comment 2 Antti Koivisto 2018-05-14 10:01:48 PDT
Created attachment 340325 [details]
patch
Comment 3 WebKit Commit Bot 2018-05-15 01:59:58 PDT
Comment on attachment 340325 [details]
patch

Clearing flags on attachment: 340325

Committed r231794: <https://trac.webkit.org/changeset/231794>
Comment 4 WebKit Commit Bot 2018-05-15 02:00:00 PDT
All reviewed patches have been landed.  Closing bug.