Bug 189299

Summary: [Web Animations] Implement composite operations
Product: WebKit Reporter: Antoine Quint <graouts>
Component: AnimationsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: augus.dupin, bfulgham, contact, dino, graouts, nmouchtaris, vincentriemer, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 232081, 232082, 232085, 232087, 230404, 232084, 232086, 235596, 236447, 242185    
Bug Blocks: 218910, 220848    

Description Antoine Quint 2018-09-04 23:40:34 PDT
The Web Animations spec supports composite operations on keyframes, we should support this feature for complete spec support.
Comment 1 Radar WebKit Bug Importer 2018-09-04 23:41:46 PDT
<rdar://problem/44128785>
Comment 2 Ben Frain 2020-12-10 04:02:29 PST
Any update on this? End of 2020 and broad support everywhere but WebKit/Safari: https://caniuse.com/?search=Web%20Animations
Comment 3 Antoine Quint 2020-12-10 05:20:49 PST
Hi Ben. No update at the moment. I've got a prototype implementation in a development branch, but I have to invest more time to actually make it something that could be considered for landing into WebKit.
Comment 4 Ben Frain 2020-12-10 06:53:20 PST
Thanks for the update Antoine, hoping you get to it shortly. I've recently recorded a course on WAAPI and a shame when I have to add WebKit caveats like it is a 'red-headed stepchild'!
Comment 5 Antoine Quint 2021-09-17 07:01:41 PDT
The first step towards supporting this feature is covered by bug 230404 so that we support composite operations for software animations.
Comment 6 Brent Fulgham 2022-06-23 13:32:43 PDT
This is now:
rdar://87213273
Comment 7 Antoine Quint 2022-07-05 01:39:54 PDT
Composite operations are now generally supported in WebKit and are enabled in Safari Technology Preview and Safari in macOS 13 and iOS 16 betas.

The remaining blocking bugs paint a picture of outstanding compatibility issues that we are still working on but will be pretty specific to a given CSS property.

The most important thing to be aware of is that properties that can be typically accelerated, such as "opacity", "filter", "transform", "translate", "scale" and "rotate" will not be fully accelerated if composite operations are used. Instead, the animation resolution will operate on the main thread, while the application of the property will operate on a GraphicsLayer. We are continuing to look into how to address this in the future.
Comment 8 Ben Frain 2022-12-08 01:51:55 PST
Simple operations like a composite add do not work as expected in Safari. Is it best to open a separate issue for that?

This simple example: https://codepen.io/benfrain/pen/JjXQqVO 

Click 'Move Me' to start the box moving, and then click the 'Scale Me' button to add a scale (using composite: add) — in now way renders as expected in Safari. Fine in Firefox/Chrome.
Comment 9 Antoine Quint 2022-12-08 05:55:16 PST
(In reply to Ben Frain from comment #8)
> Simple operations like a composite add do not work as expected in Safari. Is
> it best to open a separate issue for that?
> 
> This simple example: https://codepen.io/benfrain/pen/JjXQqVO 
> 
> Click 'Move Me' to start the box moving, and then click the 'Scale Me'
> button to add a scale (using composite: add) — in now way renders as
> expected in Safari. Fine in Firefox/Chrome.

Yes, this is a specific issue. Could you file a dedicated bug report? I'll look into it.
Comment 10 Ben Frain 2022-12-08 07:12:42 PST
Done https://bugs.webkit.org/show_bug.cgi?id=248944
Comment 11 Antoine Quint 2023-05-10 10:48:27 PDT
This feature has been implemented for quite some time now.