LibWeb/CSS: Implement CSSTransformValue

This is the final CSSStyleValue class used by the per-property test
harness, so those now actually run instead of throwing an exception on
load. 🎉

+39 WPT subtests. (Plus however many from the per-property tests finally
running.)

The two failing serialization tests are also failed by Safari in exactly
the same way, so that seems more like a spec issue. (The spec is
incomplete in quite a few places.) The failing subtest for toMatrix() is
also a spec issue: is2D is handled oddly by CSSMatrixComponent and this
subtest fails because of the `matrix` getter, which is unspecified. See
https://github.com/w3c/css-houdini-drafts/issues/1155 for details.
This commit is contained in:
Sam Atkins 2025-09-16 16:11:39 +01:00
parent 3269937e6d
commit d5977b9f74
Notes: github-actions[bot] 2025-09-24 11:28:33 +00:00
18 changed files with 721 additions and 39 deletions

View file

@ -0,0 +1,16 @@
#import <CSS/CSSStyleValue.idl>
#import <CSS/CSSTransformComponent.idl>
#import <Geometry/DOMMatrix.idl>
// https://drafts.css-houdini.org/css-typed-om-1/#csstransformvalue
[Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
interface CSSTransformValue : CSSStyleValue {
constructor(sequence<CSSTransformComponent> transforms);
iterable<CSSTransformComponent>;
readonly attribute unsigned long length;
getter CSSTransformComponent (unsigned long index);
setter undefined (unsigned long index, CSSTransformComponent val);
[ImplementedAs=is_2d] readonly attribute boolean is2D;
DOMMatrix toMatrix();
};