aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/canvas_state.rs
diff options
context:
space:
mode:
authorpylbrecht <palbrecht@mailbox.org>2020-02-03 21:48:41 +0100
committerpylbrecht <palbrecht@mailbox.org>2020-02-03 22:49:46 +0100
commit423b86e439dc2bff1a9860511f3ace8b4778d85e (patch)
tree792a354d08a3fdf4080d4630fe8d7704b452593a /components/script/canvas_state.rs
parented0973fb1c87e344c6660a0e9fa282866c0ecf00 (diff)
downloadservo-423b86e439dc2bff1a9860511f3ace8b4778d85e.tar.gz
servo-423b86e439dc2bff1a9860511f3ace8b4778d85e.zip
Add canvas usability checks to drawImage()
Diffstat (limited to 'components/script/canvas_state.rs')
-rw-r--r--components/script/canvas_state.rs10
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) => {