Bug 191700

Summary: Regression: Layer doesn't move when transform updated after a transition
Product: WebKit Reporter: Ali Juma <ajuma>
Component: AnimationsAssignee: Antoine Quint <graouts>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: dino, fred.wang, graouts, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Test case none

Description Ali Juma 2018-11-15 12:15:03 PST
Created attachment 354968 [details]
Test case

See attached test case: the blue box is animated using a CSS transition, and then its transform is updated again after the transition finishes. But the layer doesn't move for the latter update, until an update is forced by resizing the window and/or minimizing and restoring it.

This works in STP 69 but is broken on trunk.

Trying to debug this a bit, we do get as far as setting the new transform on CALayer, but the CALayer still has an animation on it (even though the transition is finished) and ignores the new transform. If that animation is removed before setting the transform, the layer does move to the right place.
Comment 1 Simon Fraser (smfr) 2018-11-15 12:36:06 PST
Almost certainly a regression from my compositing changes.
Comment 2 Simon Fraser (smfr) 2018-11-15 21:08:46 PST
I can't reproduce. Are you sure this wasn't fixed by r238170?
Comment 3 Frédéric Wang (:fredw) 2018-11-15 23:15:02 PST
I can only reproduce this issue on the iOS simulator, not macOS safari/minibrowser. I'm at r238191
Comment 4 Ali Juma 2018-11-16 07:34:00 PST
I tried again at r238277, and this still reproduces for me on macOS MiniBrowser and Safari.
Comment 5 Simon Fraser (smfr) 2018-11-16 09:44:48 PST
I can reproduce in the simulator.
Comment 6 Simon Fraser (smfr) 2018-11-16 10:06:14 PST
It seems like we're failing to remove the transforms from the GraphicsLayer.
Comment 7 Simon Fraser (smfr) 2018-11-16 10:10:55 PST
I think this is an animations bug. We don't hit KeyframeEffect::applyPendingAcceleratedActions() when the transition ends.
Comment 8 Simon Fraser (smfr) 2018-11-16 10:20:38 PST
https://trac.webkit.org/changeset/238128/webkit may be related.
Comment 9 Radar WebKit Bug Importer 2018-11-16 10:21:38 PST
<rdar://problem/46130742>
Comment 10 Antoine Quint 2019-12-17 13:32:22 PST
Does not reproduce with ToT for me.