Summary: | Regression: Layer doesn't move when transform updated after a transition | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Ali Juma <ajuma> | ||||
Component: | Animations | Assignee: | 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: |
|
Almost certainly a regression from my compositing changes. I can't reproduce. Are you sure this wasn't fixed by r238170? I can only reproduce this issue on the iOS simulator, not macOS safari/minibrowser. I'm at r238191 I tried again at r238277, and this still reproduces for me on macOS MiniBrowser and Safari. I can reproduce in the simulator. It seems like we're failing to remove the transforms from the GraphicsLayer. I think this is an animations bug. We don't hit KeyframeEffect::applyPendingAcceleratedActions() when the transition ends. https://trac.webkit.org/changeset/238128/webkit may be related. Does not reproduce with ToT for me. |
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.