diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2020-02-13 12:03:42 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-13 12:03:42 -0500 |
commit | 2c70db5f5b3f418807bc13d503ffb9d1d7fe425b (patch) | |
tree | 2799eb43f3819c1175f0dbbb725a7feeb494fffc /components/script/dom | |
parent | e3a2301efe911dfa232803a293f62c16ffdd3925 (diff) | |
parent | 588c09b5807bd9534aa63cbb11cff5c0227efdab (diff) | |
download | servo-2c70db5f5b3f418807bc13d503ffb9d1d7fe425b.tar.gz servo-2c70db5f5b3f418807bc13d503ffb9d1d7fe425b.zip |
Auto merge of #25734 - pylbrecht:get.transform, r=jdm
Implement CanvasRenderingContext2D.getTransform()
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix part of #25331
<!-- Either: -->
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Diffstat (limited to 'components/script/dom')
8 files changed, 23 insertions, 5 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 4c36a22f717..5956827d654 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -18,6 +18,7 @@ use crate::dom::bindings::root::{Dom, DomRoot, LayoutDom}; use crate::dom::bindings::str::DOMString; use crate::dom::canvasgradient::CanvasGradient; use crate::dom::canvaspattern::CanvasPattern; +use crate::dom::dommatrix::DOMMatrix; use crate::dom::globalscope::GlobalScope; use crate::dom::htmlcanvaselement::HTMLCanvasElement; use crate::dom::imagedata::ImageData; @@ -224,6 +225,11 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D { self.canvas_state.borrow().transform(a, b, c, d, e, f) } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-gettransform + fn GetTransform(&self) -> DomRoot<DOMMatrix> { + self.canvas_state.borrow().get_transform(&self.global()) + } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-settransform fn SetTransform(&self, a: f64, b: f64, c: f64, d: f64, e: f64, f: f64) { self.canvas_state.borrow().set_transform(a, b, c, d, e, f) diff --git a/components/script/dom/offscreencanvasrenderingcontext2d.rs b/components/script/dom/offscreencanvasrenderingcontext2d.rs index 31dc8b7dec5..228a4dd44d7 100644 --- a/components/script/dom/offscreencanvasrenderingcontext2d.rs +++ b/components/script/dom/offscreencanvasrenderingcontext2d.rs @@ -19,6 +19,7 @@ use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::str::DOMString; use crate::dom::canvasgradient::CanvasGradient; use crate::dom::canvaspattern::CanvasPattern; +use crate::dom::dommatrix::DOMMatrix; use crate::dom::globalscope::GlobalScope; use crate::dom::htmlcanvaselement::HTMLCanvasElement; use crate::dom::imagedata::ImageData; @@ -470,6 +471,11 @@ impl OffscreenCanvasRenderingContext2DMethods for OffscreenCanvasRenderingContex self.canvas_state.borrow().transform(a, b, c, d, e, f) } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-gettransform + fn GetTransform(&self) -> DomRoot<DOMMatrix> { + self.canvas_state.borrow().get_transform(&self.global()) + } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-settransform fn SetTransform(&self, a: f64, b: f64, c: f64, d: f64, e: f64, f: f64) { self.canvas_state.borrow().set_transform(a, b, c, d, e, f) diff --git a/components/script/dom/paintrenderingcontext2d.rs b/components/script/dom/paintrenderingcontext2d.rs index b9adc23e52d..7b44bbc4a71 100644 --- a/components/script/dom/paintrenderingcontext2d.rs +++ b/components/script/dom/paintrenderingcontext2d.rs @@ -20,6 +20,7 @@ use crate::dom::bindings::str::DOMString; use crate::dom::canvasgradient::CanvasGradient; use crate::dom::canvaspattern::CanvasPattern; use crate::dom::canvasrenderingcontext2d::CanvasRenderingContext2D; +use crate::dom::dommatrix::DOMMatrix; use crate::dom::paintworkletglobalscope::PaintWorkletGlobalScope; use crate::euclidext::Size2DExt; use canvas_traits::canvas::CanvasImageData; @@ -119,6 +120,11 @@ impl PaintRenderingContext2DMethods for PaintRenderingContext2D { self.context.Transform(a, b, c, d, e, f) } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-gettransform + fn GetTransform(&self) -> DomRoot<DOMMatrix> { + self.context.GetTransform() + } + // https://html.spec.whatwg.org/multipage/#dom-context-2d-settransform fn SetTransform(&self, a: f64, b: f64, c: f64, d: f64, e: f64, f: f64) { self.context.SetTransform(a, b, c, d, e, f); diff --git a/components/script/dom/webidls/CanvasRenderingContext2D.webidl b/components/script/dom/webidls/CanvasRenderingContext2D.webidl index bcc1b56396c..af88cfe9281 100644 --- a/components/script/dom/webidls/CanvasRenderingContext2D.webidl +++ b/components/script/dom/webidls/CanvasRenderingContext2D.webidl @@ -59,7 +59,7 @@ interface mixin CanvasTransform { unrestricted double e, unrestricted double f); - // [NewObject] DOMMatrix getTransform(); + [NewObject] DOMMatrix getTransform(); void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, diff --git a/components/script/dom/webidls/DOMMatrix.webidl b/components/script/dom/webidls/DOMMatrix.webidl index 1731116c051..eaef16c3906 100644 --- a/components/script/dom/webidls/DOMMatrix.webidl +++ b/components/script/dom/webidls/DOMMatrix.webidl @@ -10,7 +10,7 @@ * related or neighboring rights to this work. */ -[Exposed=(Window,Worker), +[Exposed=(Window,Worker,PaintWorklet), LegacyWindowAlias=WebKitCSSMatrix] interface DOMMatrix : DOMMatrixReadOnly { [Throws] constructor(optional (DOMString or sequence<unrestricted double>) init); diff --git a/components/script/dom/webidls/DOMMatrixReadOnly.webidl b/components/script/dom/webidls/DOMMatrixReadOnly.webidl index d86a475c38e..689b83ddc58 100644 --- a/components/script/dom/webidls/DOMMatrixReadOnly.webidl +++ b/components/script/dom/webidls/DOMMatrixReadOnly.webidl @@ -10,7 +10,7 @@ * related or neighboring rights to this work. */ -[Exposed=(Window,Worker)] +[Exposed=(Window,Worker,PaintWorklet)] interface DOMMatrixReadOnly { [Throws] constructor(optional (DOMString or sequence<unrestricted double>) init); diff --git a/components/script/dom/webidls/DOMPoint.webidl b/components/script/dom/webidls/DOMPoint.webidl index ee25eed0d69..765c62df573 100644 --- a/components/script/dom/webidls/DOMPoint.webidl +++ b/components/script/dom/webidls/DOMPoint.webidl @@ -10,7 +10,7 @@ */ // http://dev.w3.org/fxtf/geometry/Overview.html#dompoint -[Exposed=(Window,Worker)] +[Exposed=(Window,Worker,PaintWorklet)] interface DOMPoint : DOMPointReadOnly { [Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, optional unrestricted double z = 0, optional unrestricted double w = 1); diff --git a/components/script/dom/webidls/DOMPointReadOnly.webidl b/components/script/dom/webidls/DOMPointReadOnly.webidl index bdd7eba31eb..98940ed3f08 100644 --- a/components/script/dom/webidls/DOMPointReadOnly.webidl +++ b/components/script/dom/webidls/DOMPointReadOnly.webidl @@ -10,7 +10,7 @@ */ // http://dev.w3.org/fxtf/geometry/Overview.html#dompointreadonly -[Exposed=(Window,Worker)] +[Exposed=(Window,Worker,PaintWorklet)] interface DOMPointReadOnly { [Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, optional unrestricted double z = 0, optional unrestricted double w = 1); |