diff options
author | Utsav Oza <utsavoza96@gmail.com> | 2020-05-22 15:51:36 +0530 |
---|---|---|
committer | Utsav Oza <utsavoza96@gmail.com> | 2020-06-10 22:10:32 +0530 |
commit | 726f7d72092d5b8908cc8d8fdefe51ebea8dadf8 (patch) | |
tree | 3311f49c3f1717d4252253e6ae90223cc54094e3 /components/script/canvas_state.rs | |
parent | 68f641ee78c80065663941ff49223c556f200e53 (diff) | |
download | servo-726f7d72092d5b8908cc8d8fdefe51ebea8dadf8.tar.gz servo-726f7d72092d5b8908cc8d8fdefe51ebea8dadf8.zip |
Check for valid arguments before processing canvas.fillText
Diffstat (limited to 'components/script/canvas_state.rs')
-rw-r--r-- | components/script/canvas_state.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/components/script/canvas_state.rs b/components/script/canvas_state.rs index 2376d6f8d85..dac2bb04924 100644 --- a/components/script/canvas_state.rs +++ b/components/script/canvas_state.rs @@ -988,9 +988,13 @@ impl CanvasState { // https://html.spec.whatwg.org/multipage/#dom-context-2d-filltext pub fn fill_text(&self, text: DOMString, x: f64, y: f64, max_width: Option<f64>) { - let parsed_text: String = text.into(); + let is_max_width_finite = max_width.map_or(true, |max_width| max_width.is_finite()); + if !(x.is_finite() && y.is_finite() && is_max_width_finite) { + return; + } + let style = self.state.borrow().fill_style.to_fill_or_stroke_style(); - self.send_canvas_2d_msg(Canvas2dMsg::FillText(parsed_text, x, y, max_width, style)); + self.send_canvas_2d_msg(Canvas2dMsg::FillText(text.into(), x, y, max_width, style)); } // https://html.spec.whatwg.org/multipage/#textmetrics |