diff options
37 files changed, 12 insertions, 181 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 502f632cecc..c9f8da05bff 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -901,7 +901,18 @@ impl<'a> CanvasRenderingContext2DMethods for &'a CanvasRenderingContext2D { self.ipc_renderer .send(CanvasMsg::Canvas2d(Canvas2dMsg::GetImageData(dest_rect, canvas_size, sender))) .unwrap(); - let data = receiver.recv().unwrap(); + let mut data = receiver.recv().unwrap(); + + // Un-premultiply alpha + // TODO: may want a precomputed un-premultiply table to make this fast. + // https://github.com/servo/servo/issues/6969 + for chunk in data.chunks_mut(4) { + let alpha = chunk[3] as f32 / 255.; + chunk[0] = (chunk[0] as f32 / alpha) as u8; + chunk[1] = (chunk[1] as f32 / alpha) as u8; + chunk[2] = (chunk[2] as f32 / alpha) as u8; + } + Ok(ImageData::new(self.global.root().r(), sw.abs().to_u32().unwrap(), sh.abs().to_u32().unwrap(), Some(data))) } diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.copy.html.ini deleted file mode 100644 index 69471e48881..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.copy.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.copy.html] - type: testharness - [Canvas test: 2d.composite.canvas.copy] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-atop.html.ini deleted file mode 100644 index 78a31566554..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-atop.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.destination-atop.html] - type: testharness - [Canvas test: 2d.composite.canvas.destination-atop] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-in.html.ini deleted file mode 100644 index 9d21e34db4b..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-in.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.destination-in.html] - type: testharness - [Canvas test: 2d.composite.canvas.destination-in] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-out.html.ini deleted file mode 100644 index 9d5f2fb490c..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-out.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.destination-out.html] - type: testharness - [Canvas test: 2d.composite.canvas.destination-out] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-over.html.ini deleted file mode 100644 index 8277c5a8dcd..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-over.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.destination-over.html] - type: testharness - [Canvas test: 2d.composite.canvas.destination-over] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-atop.html.ini deleted file mode 100644 index 83960b07b77..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-atop.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.source-atop.html] - type: testharness - [Canvas test: 2d.composite.canvas.source-atop] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-in.html.ini deleted file mode 100644 index bfd57a3886b..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-in.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.source-in.html] - type: testharness - [Canvas test: 2d.composite.canvas.source-in] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-out.html.ini deleted file mode 100644 index 8c919587d15..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-out.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.source-out.html] - type: testharness - [Canvas test: 2d.composite.canvas.source-out] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-over.html.ini deleted file mode 100644 index d1af3381578..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-over.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.source-over.html] - type: testharness - [Canvas test: 2d.composite.canvas.source-over] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.xor.html.ini deleted file mode 100644 index d37ecc0011f..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.xor.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.canvas.xor.html] - type: testharness - [Canvas test: 2d.composite.canvas.xor] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.copy.html.ini deleted file mode 100644 index 1ca75fe16c2..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.copy.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.copy.html] - type: testharness - [Canvas test: 2d.composite.image.copy] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-atop.html.ini deleted file mode 100644 index 99a7be01aa0..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-atop.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.destination-atop.html] - type: testharness - [Canvas test: 2d.composite.image.destination-atop] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-in.html.ini deleted file mode 100644 index ad3d8dccc7e..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-in.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.destination-in.html] - type: testharness - [Canvas test: 2d.composite.image.destination-in] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-out.html.ini deleted file mode 100644 index 98625ab9687..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-out.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.destination-out.html] - type: testharness - [Canvas test: 2d.composite.image.destination-out] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-over.html.ini deleted file mode 100644 index fb8ad3107a8..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-over.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.destination-over.html] - type: testharness - [Canvas test: 2d.composite.image.destination-over] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-atop.html.ini deleted file mode 100644 index fc886edca68..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-atop.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.source-atop.html] - type: testharness - [Canvas test: 2d.composite.image.source-atop] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-in.html.ini deleted file mode 100644 index 334346dd9ba..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-in.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.source-in.html] - type: testharness - [Canvas test: 2d.composite.image.source-in] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-out.html.ini deleted file mode 100644 index f6ccbf762a0..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-out.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.source-out.html] - type: testharness - [Canvas test: 2d.composite.image.source-out] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-over.html.ini deleted file mode 100644 index 8bdfd76aeaf..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-over.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.source-over.html] - type: testharness - [Canvas test: 2d.composite.image.source-over] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.xor.html.ini deleted file mode 100644 index 6e50bc40a55..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.xor.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.image.xor.html] - type: testharness - [Canvas test: 2d.composite.image.xor] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.copy.html.ini deleted file mode 100644 index 9c314a870aa..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.copy.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.copy.html] - type: testharness - [Canvas test: 2d.composite.transparent.copy] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-atop.html.ini deleted file mode 100644 index a58fe90d76c..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-atop.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.destination-atop.html] - type: testharness - [Canvas test: 2d.composite.transparent.destination-atop] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-in.html.ini deleted file mode 100644 index b535e9cc525..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-in.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.destination-in.html] - type: testharness - [Canvas test: 2d.composite.transparent.destination-in] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-out.html.ini deleted file mode 100644 index c425dd8a7d1..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-out.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.destination-out.html] - type: testharness - [Canvas test: 2d.composite.transparent.destination-out] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-over.html.ini deleted file mode 100644 index c0178e7ff5b..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-over.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.destination-over.html] - type: testharness - [Canvas test: 2d.composite.transparent.destination-over] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-atop.html.ini deleted file mode 100644 index 3b4e72a198e..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-atop.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.source-atop.html] - type: testharness - [Canvas test: 2d.composite.transparent.source-atop] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-in.html.ini deleted file mode 100644 index 8b7fb3f6e95..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-in.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.source-in.html] - type: testharness - [Canvas test: 2d.composite.transparent.source-in] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-out.html.ini deleted file mode 100644 index 6686231c07f..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-out.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.source-out.html] - type: testharness - [Canvas test: 2d.composite.transparent.source-out] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-over.html.ini deleted file mode 100644 index c5732728b2c..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-over.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.source-over.html] - type: testharness - [Canvas test: 2d.composite.transparent.source-over] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.xor.html.ini deleted file mode 100644 index f0b3f066424..00000000000 --- a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.xor.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.composite.transparent.xor.html] - type: testharness - [Canvas test: 2d.composite.transparent.xor] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html.ini deleted file mode 100644 index eaa3aab2432..00000000000 --- a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.fillStyle.parse.hsla-1.html] - type: testharness - [Canvas test: 2d.fillStyle.parse.hsla-1] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html.ini deleted file mode 100644 index e625f8b7e07..00000000000 --- a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.fillStyle.parse.rgba-num-1.html] - type: testharness - [Canvas test: 2d.fillStyle.parse.rgba-num-1] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html.ini deleted file mode 100644 index 48ebdde1034..00000000000 --- a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.fillStyle.parse.rgba-num-2.html] - type: testharness - [Canvas test: 2d.fillStyle.parse.rgba-num-2] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html.ini deleted file mode 100644 index 309fc2dede9..00000000000 --- a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.fillStyle.parse.rgba-percent.html] - type: testharness - [Canvas test: 2d.fillStyle.parse.rgba-percent] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colouralpha.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colouralpha.html.ini deleted file mode 100644 index c0a89137a37..00000000000 --- a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colouralpha.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.gradient.interpolate.colouralpha.html] - type: testharness - [Canvas test: 2d.gradient.interpolate.colouralpha] - expected: FAIL - diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonpremul.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonpremul.html.ini deleted file mode 100644 index 9a25dae1b16..00000000000 --- a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonpremul.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[2d.imageData.get.nonpremul.html] - type: testharness - [getImageData() returns non-premultiplied colours] - expected: FAIL - |