diff options
Diffstat (limited to 'components/script/canvas_state.rs')
-rw-r--r-- | components/script/canvas_state.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/components/script/canvas_state.rs b/components/script/canvas_state.rs index ebf36bad32b..34ea6741660 100644 --- a/components/script/canvas_state.rs +++ b/components/script/canvas_state.rs @@ -382,9 +382,19 @@ impl CanvasState { ) -> ErrorResult { let result = match image { CanvasImageSource::HTMLCanvasElement(ref canvas) => { + // https://html.spec.whatwg.org/multipage/#check-the-usability-of-the-image-argument + if !canvas.is_valid() { + return Err(Error::InvalidState); + } + self.draw_html_canvas_element(&canvas, htmlcanvas, sx, sy, sw, sh, dx, dy, dw, dh) }, CanvasImageSource::OffscreenCanvas(ref canvas) => { + // https://html.spec.whatwg.org/multipage/#check-the-usability-of-the-image-argument + if !canvas.is_valid() { + return Err(Error::InvalidState); + } + self.draw_offscreen_canvas(&canvas, htmlcanvas, sx, sy, sw, sh, dx, dy, dw, dh) }, CanvasImageSource::HTMLImageElement(ref image) => { |