diff --git a/components/script/dom/dommatrixreadonly.rs b/components/script/dom/dommatrixreadonly.rs index fae6afe1649..73bb5423bea 100644 --- a/components/script/dom/dommatrixreadonly.rs +++ b/components/script/dom/dommatrixreadonly.rs @@ -571,6 +571,18 @@ impl DOMMatrixReadOnlyMethods for DOMMatrixReadOnly { .ScaleSelf(scaleX, scaleY, scaleZ, originX, originY, originZ) } + // https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-scalenonuniform + fn ScaleNonUniform(&self, scaleX: f64, scaleY: f64) -> DomRoot { + DOMMatrix::from_readonly(&self.global(), self).ScaleSelf( + scaleX, + Some(scaleY), + 1.0, + 0.0, + 0.0, + 0.0, + ) + } + // https://drafts.fxtf.org/geometry-1/#dom-dommatrixreadonly-scale3d fn Scale3d(&self, scale: f64, originX: f64, originY: f64, originZ: f64) -> DomRoot { DOMMatrix::from_readonly(&self.global(), self).Scale3dSelf(scale, originX, originY, originZ) diff --git a/components/script/dom/webidls/DOMMatrixReadOnly.webidl b/components/script/dom/webidls/DOMMatrixReadOnly.webidl index dcd9229b3d7..eb7051ba529 100644 --- a/components/script/dom/webidls/DOMMatrixReadOnly.webidl +++ b/components/script/dom/webidls/DOMMatrixReadOnly.webidl @@ -56,6 +56,8 @@ interface DOMMatrixReadOnly { optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); + [NewObject] DOMMatrix scaleNonUniform(optional unrestricted double scaleX = 1, + optional unrestricted double scaleY = 1); DOMMatrix scale3d(optional unrestricted double scale = 1, optional unrestricted double originX = 0, optional unrestricted double originY = 0, diff --git a/tests/wpt/metadata/css/geometry/DOMMatrix-002.html.ini b/tests/wpt/metadata/css/geometry/DOMMatrix-002.html.ini deleted file mode 100644 index 76e8dec3644..00000000000 --- a/tests/wpt/metadata/css/geometry/DOMMatrix-002.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[DOMMatrix-002.html] - [test scaleNonUniform() doesn't mutate] - expected: FAIL - diff --git a/tests/wpt/metadata/css/geometry/DOMMatrix-003.html.ini b/tests/wpt/metadata/css/geometry/DOMMatrix-003.html.ini index ad397ee8c6d..fafc09f9bfc 100644 --- a/tests/wpt/metadata/css/geometry/DOMMatrix-003.html.ini +++ b/tests/wpt/metadata/css/geometry/DOMMatrix-003.html.ini @@ -5,13 +5,3 @@ [test rotateAxisAngle() ] expected: FAIL - - [test scaleNonUniform() with sx] - expected: FAIL - - [test scaleNonUniform() with sx, sy] - expected: FAIL - - [test scaleNonUniform()] - expected: FAIL - diff --git a/tests/wpt/metadata/css/geometry/interfaces.html.ini b/tests/wpt/metadata/css/geometry/interfaces.html.ini index d93f9ea79a6..b6286c0e9e4 100644 --- a/tests/wpt/metadata/css/geometry/interfaces.html.ini +++ b/tests/wpt/metadata/css/geometry/interfaces.html.ini @@ -375,15 +375,6 @@ [Geometry APIs interface IDL tests] expected: FAIL - [DOMMatrixReadOnly interface: calling scaleNonUniform(unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError] - expected: FAIL - - [DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scaleNonUniform(unrestricted double, unrestricted double)" with the proper type] - expected: FAIL - - [DOMMatrixReadOnly interface: operation scaleNonUniform(unrestricted double, unrestricted double)] - expected: FAIL - [DOMPointReadOnly interface: default toJSON operation on new DOMPoint()] expected: FAIL diff --git a/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini b/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini index af0c3770015..f361b253dc0 100644 --- a/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini +++ b/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini @@ -98,15 +98,6 @@ [interfaces] expected: FAIL - [DOMMatrixReadOnly interface: calling scaleNonUniform(unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError] - expected: FAIL - - [DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scaleNonUniform(unrestricted double, unrestricted double)" with the proper type] - expected: FAIL - - [DOMMatrixReadOnly interface: operation scaleNonUniform(unrestricted double, unrestricted double)] - expected: FAIL - [DOMPointReadOnly interface: default toJSON operation on new DOMPoint()] expected: FAIL