From e6a3c16e9a4913d20e19039123103d5113114375 Mon Sep 17 00:00:00 2001 From: Alberto Corona Date: Tue, 20 Oct 2015 19:23:29 -0500 Subject: [PATCH 1/2] Enable Pattern variant of CanvasFillOrStrokeStyle Closes #7608 --- components/script/dom/canvasrenderingcontext2d.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 05a4b875852..4167bf9d4cd 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -50,10 +50,11 @@ use util::vec::byte_swap; #[must_root] #[derive(JSTraceable, Clone, HeapSizeOf)] +#[allow(dead_code)] enum CanvasFillOrStrokeStyle { Color(RGBA), Gradient(JS), - // Pattern(JS), // https://github.com/servo/servo/pull/6157 + Pattern(JS), } // https://html.spec.whatwg.org/multipage/#canvasrenderingcontext2d @@ -922,6 +923,9 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D { CanvasFillOrStrokeStyle::Gradient(ref gradient) => { StringOrCanvasGradientOrCanvasPattern::eCanvasGradient(Root::from_ref(&*gradient)) }, + CanvasFillOrStrokeStyle::Pattern(ref pattern) => { + StringOrCanvasGradientOrCanvasPattern::eCanvasPattern(Root::from_ref(&*pattern)) + } } } @@ -966,6 +970,9 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D { CanvasFillOrStrokeStyle::Gradient(ref gradient) => { StringOrCanvasGradientOrCanvasPattern::eCanvasGradient(Root::from_ref(&*gradient)) }, + CanvasFillOrStrokeStyle::Pattern(ref pattern) => { + StringOrCanvasGradientOrCanvasPattern::eCanvasPattern(Root::from_ref(&*pattern)) + } } } From 832942bc267f6709f10a7d6ac88202ae066c5e7c Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 29 Dec 2015 08:44:24 -0500 Subject: [PATCH 2/2] Add test for fillStyle/strokeStyle getting/setting roundtrips. --- tests/wpt/mozilla/meta/MANIFEST.json | 6 +++++ .../fill_and_stroke_getters_setters.html.ini | 6 +++++ .../fill_and_stroke_getters_setters.html | 27 +++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 tests/wpt/mozilla/meta/mozilla/canvas/fill_and_stroke_getters_setters.html.ini create mode 100644 tests/wpt/mozilla/tests/mozilla/canvas/fill_and_stroke_getters_setters.html diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 8b080816bed..3ac785d5da7 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -5313,6 +5313,12 @@ "url": "/_mozilla/mozilla/canvas.initial.reset.2dstate.html" } ], + "mozilla/canvas/fill_and_stroke_getters_setters.html": [ + { + "path": "mozilla/canvas/fill_and_stroke_getters_setters.html", + "url": "/_mozilla/mozilla/canvas/fill_and_stroke_getters_setters.html" + } + ], "mozilla/caption.html": [ { "path": "mozilla/caption.html", diff --git a/tests/wpt/mozilla/meta/mozilla/canvas/fill_and_stroke_getters_setters.html.ini b/tests/wpt/mozilla/meta/mozilla/canvas/fill_and_stroke_getters_setters.html.ini new file mode 100644 index 00000000000..5d1f876fbed --- /dev/null +++ b/tests/wpt/mozilla/meta/mozilla/canvas/fill_and_stroke_getters_setters.html.ini @@ -0,0 +1,6 @@ +[fill_and_stroke_getters_setters.html] + type: testharness + [strokeStyle roundtrips with \[object CanvasPattern\]] + expected: FAIL + [fillStyle roundtrips with \[object CanvasPattern\]] + expected: FAIL diff --git a/tests/wpt/mozilla/tests/mozilla/canvas/fill_and_stroke_getters_setters.html b/tests/wpt/mozilla/tests/mozilla/canvas/fill_and_stroke_getters_setters.html new file mode 100644 index 00000000000..7ddaa5bfbf0 --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/canvas/fill_and_stroke_getters_setters.html @@ -0,0 +1,27 @@ + + +fillStyle/strokeStyle setters store the value for retrieval by getters + + + +