LibWeb/CSS: Implement CSSMatrixComponent

Equivalent to the matrix() and matrix3d() transform functions.

+19 WPT subtests.
This commit is contained in:
Sam Atkins 2025-09-16 11:50:00 +01:00
parent 2ffbb284f2
commit a1db5e7789
Notes: github-actions[bot] 2025-09-24 11:28:54 +00:00
12 changed files with 175 additions and 25 deletions

View file

@ -58,6 +58,7 @@ CSSMathNegate
CSSMathProduct
CSSMathSum
CSSMathValue
CSSMatrixComponent
CSSMediaRule
CSSNamespaceRule
CSSNestedDeclarations

View file

@ -2,5 +2,5 @@ Harness status: OK
Found 1 tests
1 Fail
Fail CSSMatrixComponent's matrix attribute is mutable
1 Pass
Pass CSSMatrixComponent's matrix attribute is mutable

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 545 tests
353 Pass
192 Fail
360 Pass
185 Fail
Pass idl_test setup
Pass idl_test validation
Pass Partial interface Element: original interface defined
@ -376,13 +376,13 @@ Fail Stringification of perspective
Fail CSSPerspective interface: perspective must inherit property "length" with the proper type
Fail CSSTransformComponent interface: perspective must inherit property "is2D" with the proper type
Fail CSSTransformComponent interface: perspective must inherit property "toMatrix()" with the proper type
Fail CSSMatrixComponent interface: existence and properties of interface object
Fail CSSMatrixComponent interface object length
Fail CSSMatrixComponent interface object name
Fail CSSMatrixComponent interface: existence and properties of interface prototype object
Fail CSSMatrixComponent interface: existence and properties of interface prototype object's "constructor" property
Fail CSSMatrixComponent interface: existence and properties of interface prototype object's @@unscopables property
Fail CSSMatrixComponent interface: attribute matrix
Pass CSSMatrixComponent interface: existence and properties of interface object
Pass CSSMatrixComponent interface object length
Pass CSSMatrixComponent interface object name
Pass CSSMatrixComponent interface: existence and properties of interface prototype object
Pass CSSMatrixComponent interface: existence and properties of interface prototype object's "constructor" property
Pass CSSMatrixComponent interface: existence and properties of interface prototype object's @@unscopables property
Pass CSSMatrixComponent interface: attribute matrix
Fail CSSMatrixComponent must be primary interface of matrix
Fail Stringification of matrix
Fail CSSMatrixComponent interface: matrix must inherit property "matrix" with the proper type

View file

@ -2,14 +2,14 @@ Harness status: OK
Found 10 tests
10 Fail
Fail CSSMatrixComponent can be constructed from a 2D matrix with is2D true
Fail CSSMatrixComponent can be constructed from a 2D matrix with is2D false
Fail CSSMatrixComponent can be constructed from a 2D matrix without a CSSMatrixComponentOptions
Fail CSSMatrixComponent can be constructed from a 2D matrix with an invalid CSSMatrixComponentOptions
Fail CSSMatrixComponent.matrix can be updated to a 2D matrix
Fail CSSMatrixComponent can be constructed from a 3D matrix with is2D true
Fail CSSMatrixComponent can be constructed from a 3D matrix with is2D false
Fail CSSMatrixComponent can be constructed from a 3D matrix without a CSSMatrixComponentOptions
Fail CSSMatrixComponent can be constructed from a 3D matrix with an invalid CSSMatrixComponentOptions
Fail CSSMatrixComponent.matrix can be updated to a 3D matrix
10 Pass
Pass CSSMatrixComponent can be constructed from a 2D matrix with is2D true
Pass CSSMatrixComponent can be constructed from a 2D matrix with is2D false
Pass CSSMatrixComponent can be constructed from a 2D matrix without a CSSMatrixComponentOptions
Pass CSSMatrixComponent can be constructed from a 2D matrix with an invalid CSSMatrixComponentOptions
Pass CSSMatrixComponent.matrix can be updated to a 2D matrix
Pass CSSMatrixComponent can be constructed from a 3D matrix with is2D true
Pass CSSMatrixComponent can be constructed from a 3D matrix with is2D false
Pass CSSMatrixComponent can be constructed from a 3D matrix without a CSSMatrixComponentOptions
Pass CSSMatrixComponent can be constructed from a 3D matrix with an invalid CSSMatrixComponentOptions
Pass CSSMatrixComponent.matrix can be updated to a 3D matrix

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 8 tests
7 Pass
1 Fail
8 Pass
Pass CSSTranslate.toMatrix() returns correct matrix
Pass CSSRotate.toMatrix() returns correct matrix
Pass CSSScale.toMatrix() returns correct matrix
@ -11,4 +10,4 @@ Pass CSSSkew.toMatrix() returns correct matrix
Pass CSSSkewX.toMatrix() returns correct matrix
Pass CSSSkewY.toMatrix() returns correct matrix
Pass CSSPerspective.toMatrix() returns correct matrix
Fail CSSMatrixComponent.toMatrix() returns correct matrix
Pass CSSMatrixComponent.toMatrix() returns correct matrix