aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/canvasrenderingcontext2d.rs
diff options
context:
space:
mode:
authorDavid Zbarsky <dzbarsky@gmail.com>2015-08-04 15:05:15 -0400
committerDavid Zbarsky <dzbarsky@gmail.com>2015-08-04 15:08:37 -0400
commit75e444c3b2aea541936331e19c95f52b24159883 (patch)
tree47c8ea9879beb0da4ce05a3d9f0f70a0edc2f7a8 /components/script/dom/canvasrenderingcontext2d.rs
parent0565df859684560b525b0361476d334f79db8474 (diff)
downloadservo-75e444c3b2aea541936331e19c95f52b24159883.tar.gz
servo-75e444c3b2aea541936331e19c95f52b24159883.zip
Make createRadialGradient throw for negative radii
Diffstat (limited to 'components/script/dom/canvasrenderingcontext2d.rs')
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index 834e9606c49..d70cc85fe85 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -1019,10 +1019,14 @@ impl<'a> CanvasRenderingContext2DMethods for &'a CanvasRenderingContext2D {
// https://html.spec.whatwg.org/multipage/#dom-context-2d-createradialgradient
fn CreateRadialGradient(self, x0: Finite<f64>, y0: Finite<f64>, r0: Finite<f64>,
x1: Finite<f64>, y1: Finite<f64>, r1: Finite<f64>)
- -> Root<CanvasGradient> {
- CanvasGradient::new(self.global.root().r(),
- CanvasGradientStyle::Radial(
- RadialGradientStyle::new(*x0, *y0, *r0, *x1, *y1, *r1, Vec::new())))
+ -> Fallible<Root<CanvasGradient>> {
+ if *r0 < 0. || *r1 < 0. {
+ return Err(IndexSize);
+ }
+
+ Ok(CanvasGradient::new(self.global.root().r(),
+ CanvasGradientStyle::Radial(
+ RadialGradientStyle::new(*x0, *y0, *r0, *x1, *y1, *r1, Vec::new()))))
}
// https://html.spec.whatwg.org/multipage/#dom-context-2d-createpattern