diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index fd5a8131749..c712c7920a8 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -413,6 +413,12 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D> self.update_transform() } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-resettransform + fn ResetTransform(self) { + self.state.borrow_mut().transform = Matrix2D::identity(); + self.update_transform() + } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-globalalpha fn GlobalAlpha(self) -> f64 { let state = self.state.borrow(); diff --git a/components/script/dom/webidls/CanvasRenderingContext2D.webidl b/components/script/dom/webidls/CanvasRenderingContext2D.webidl index 0511824ac93..e9ce0aa78e1 100644 --- a/components/script/dom/webidls/CanvasRenderingContext2D.webidl +++ b/components/script/dom/webidls/CanvasRenderingContext2D.webidl @@ -46,7 +46,7 @@ interface CanvasRenderingContext2D { unrestricted double d, unrestricted double e, unrestricted double f); - //void resetTransform(); + void resetTransform(); // compositing attribute unrestricted double globalAlpha; // (default 1.0) diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index e2e802f4ae1..3a6c2845cd5 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -1157,6 +1157,16 @@ ], "url": "/2dcontext/transformations/canvas_transformations_scale_001.htm" }, + { + "path": "2dcontext/transformations/canvas_transformations_reset_001.htm", + "references": [ + [ + "/2dcontext/transformations/canvas_transformations_reset_001-ref.htm", + "==" + ] + ], + "url": "/2dcontext/transformations/canvas_transformations_reset_001.htm" + }, { "path": "FileAPI/url/url_xmlhttprequest_img.html", "references": [ @@ -20882,6 +20892,18 @@ "url": "/2dcontext/transformations/canvas_transformations_scale_001.htm" } ], + "2dcontext/transformations/canvas_transformations_reset_001.htm": [ + { + "path": "2dcontext/transformations/canvas_transformations_reset_001.htm", + "references": [ + [ + "/2dcontext/transformations/canvas_transformations_reset_001-ref.htm", + "==" + ] + ], + "url": "/2dcontext/transformations/canvas_transformations_reset_001.htm" + } + ], "FileAPI/url/url_xmlhttprequest_img.html": [ { "path": "FileAPI/url/url_xmlhttprequest_img.html", diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index dae66b56703..80d2fdd9c1d 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -6819,9 +6819,6 @@ [CanvasRenderingContext2D interface: attribute currentTransform] expected: FAIL - [CanvasRenderingContext2D interface: operation resetTransform()] - expected: FAIL - [CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource,DOMString)] expected: FAIL @@ -6948,9 +6945,6 @@ [CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "currentTransform" with the proper type (6)] expected: FAIL - [CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetTransform" with the proper type (12)] - expected: FAIL - [CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeStyle" with the proper type (16)] expected: FAIL diff --git a/tests/wpt/web-platform-tests/2dcontext/transformations/canvas_transformations_reset_001-ref.html b/tests/wpt/web-platform-tests/2dcontext/transformations/canvas_transformations_reset_001-ref.html new file mode 100644 index 00000000000..caeea04cef4 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/transformations/canvas_transformations_reset_001-ref.html @@ -0,0 +1,21 @@ + + +
+ + + + + + + + diff --git a/tests/wpt/web-platform-tests/2dcontext/transformations/canvas_transformations_reset_001.html b/tests/wpt/web-platform-tests/2dcontext/transformations/canvas_transformations_reset_001.html new file mode 100644 index 00000000000..9cc643da8b8 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/transformations/canvas_transformations_reset_001.html @@ -0,0 +1,22 @@ + + + + + +