Created attachment 433003 [details] Test case Attached test shows that animation from scale(0) has missing backing store.
Workaround is to animate from scale(0.001)
<rdar://problem/80246192>
Similar to bug 218371.
We've synthesized a 100% keyframe, but it doesn't have a transform property, so we never call addStyleToCumulativeBounds() for the scale(1) state.
When we call KeyframeEffect::computeExtentOfTransformAnimation() box.style() already reflects the first keyframe, so falling back to box.style() for the 100% keyframe doesn't work (it has scale(0) in it). We need to be able to get to the style which is not affected by keyframes.
(In reply to Simon Fraser (smfr) from comment #5) > When we call KeyframeEffect::computeExtentOfTransformAnimation() box.style() > already reflects the first keyframe, so falling back to box.style() for the > 100% keyframe doesn't work (it has scale(0) in it). We need to be able to > get to the style which is not affected by keyframes. The style not accounting for animations is stored on ElementAnimationRareData, and you may access it from KeyframeEffect with targetStyleable()->lastStyleChangeEventStyle().
Created attachment 450510 [details] Patch
Created attachment 450513 [details] Patch
Committed r288881 (246633@main): <https://commits.webkit.org/246633@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 450513 [details].
Interestingly, modifying `transform: scale(0)` to `scale: 0` in the keyframe in the test case doesn't reproduce the issue.
Filed bug 236019 on that.