Commit Graph

2 Commits

Author SHA1 Message Date
Andreas Kling
36e05884f4 LibWeb: Fall back to discrete interpolation for non-invertible matrices
Per the CSS Transforms spec, when one of the matrices for interpolation
is non-invertible (i.e. cannot be decomposed), the animation must fall
back to discrete interpolation.

Previously we would silently drop the transform, producing "none". Now
we correctly snap between the from/to values at the 50% progress mark,
matching the behavior required by the spec and other browsers.

Also propagate to_matrix() errors instead of silently using a partial
result, and use the previously-unused AllowDiscrete parameter.
2026-03-21 23:16:32 -05:00
Andreas Kling
fa0a7d4a4a Tests: Add test for non-invertible transform animation fallback
When a transform animation involves a non-invertible matrix (e.g. a
matrix3d with zero Z-scale), the spec requires falling back to discrete
interpolation. Currently we drop the transform entirely, producing
"none" at all progress values. A following commit will fix this.
2026-03-21 23:16:32 -05:00