diff options
3 files changed, 8 insertions, 6 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 427f8d78501..4145c8e28cc 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -460,15 +460,21 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D> Point2D(x as f32, y as f32))).unwrap(); } - fn Arc(self, x: Finite<f64>, y: Finite<f64>, r: Finite<f64>, start: Finite<f64>, end: Finite<f64>, ccw: bool) { + fn Arc(self, x: Finite<f64>, y: Finite<f64>, r: Finite<f64>, + start: Finite<f64>, end: Finite<f64>, ccw: bool) -> Fallible<()> { let x = *x; let y = *y; let r = *r; let start = *start; let end = *end; + if r < 0.0 { + return Err(IndexSize); + } + self.renderer.send(CanvasMsg::Arc(Point2D(x as f32, y as f32), r as f32, start as f32, end as f32, ccw)).unwrap(); + Ok(()) } // https://html.spec.whatwg.org/#dom-context-2d-imagesmoothingenabled diff --git a/components/script/dom/webidls/CanvasRenderingContext2D.webidl b/components/script/dom/webidls/CanvasRenderingContext2D.webidl index a3d40dc7c52..96624deb0fa 100644 --- a/components/script/dom/webidls/CanvasRenderingContext2D.webidl +++ b/components/script/dom/webidls/CanvasRenderingContext2D.webidl @@ -150,6 +150,7 @@ interface CanvasPathMethods { //void rect(double x, double y, double w, double h); + [Throws] void arc(double x, double y, double radius, double startAngle, double endAngle, optional boolean anticlockwise = false); // NOT IMPLEMENTED [LenientFloat] void ellipse(double x, double y, double radiusX, double radiusY, double rotation, double startAngle, double endAngle, boolean anticlockwise); }; diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.negative.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.negative.html.ini deleted file mode 100644 index f8014c1fcfc..00000000000 --- a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.negative.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.path.arc.negative.html] - type: testharness - [arc() with negative radius throws INDEX_SIZE_ERR] - expected: FAIL - |