fune/testing/web-platform/tests/imagebitmap-renderingcontext/tranferFromImageBitmap-TransferToImageBitmap-offscreen.html
Juanmi Huertas 78f2b8a75e Bug 1580324 [wpt PR 18976] - TransferToImageBitmap should reset the bitmap to transparent black, a=testonly
Automatic update from web-platform-tests
TransferToImageBitmap should reset the bitmap to transparent black

It was implemented to reset to black, but it should be transparent
black, fixing also the broken tests that were validating the wrong
behaviour.

Bug: 1001609
Change-Id: I68e51628bd36e19b2c332da60239e6a48ebecf8a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1796442
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Juanmi Huertas <juanmihd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695658}

--

wpt-commits: b272022f914b1bcdfc72255f3f1373306c45a238
wpt-pr: 18976
2019-09-14 08:52:20 +00:00

56 lines
2.1 KiB
HTML

<!DOCTYPE html>
<meta charset="utf-8">
<title>Canvas's ImageBitmapRenderingContext test</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://html.spec.whatwg.org/multipage/scripting.html#the-imagebitmap-rendering-context">
<script>
var width = 10;
var height = 10;
function testCanvas(bitmapCanvas, r, g, b, a)
{
var myCanvas = document.createElement('canvas');
myCanvas.width = width;
myCanvas.height = height;
var myCtx = myCanvas.getContext('2d');
myCtx.drawImage(bitmapCanvas, 0, 0);
var color = myCtx.getImageData(5, 5, 1, 1).data;
assert_array_equals(color, [r, g, b, a]);
}
promise_test(function() {
function testTransferFromImageBitmapNullability(greenImage) {
var bitmapCanvas = new OffscreenCanvas(width,height);
var bitmapCtx = bitmapCanvas.getContext('bitmaprenderer');
bitmapCtx.transferFromImageBitmap(greenImage);
// Make sure the bitmap renderer canvas is filled correctly.
var myCanvas = document.createElement('canvas');
var myCtx = myCanvas.getContext('bitmaprenderer');
myCtx.transferFromImageBitmap(bitmapCanvas.transferToImageBitmap());
testCanvas(myCanvas, 0, 255, 0, 255);
// Test that after transfering for second time to ImageBitmap produces
// a black bitmap of the same size
var myCanvas2 = document.createElement('canvas');
var myCtx2 = myCanvas2.getContext('bitmaprenderer');
myCtx2.transferFromImageBitmap(bitmapCanvas.transferToImageBitmap());
testCanvas(myCanvas2, 0, 0, 0, 0);
}
var greenCanvas = document.createElement('canvas');
greenCanvas.width = width;
greenCanvas.height = height;
var greenCtx = greenCanvas.getContext('2d');
greenCtx.fillStyle = '#0f0';
greenCtx.fillRect(0, 0, width, height);
return Promise.all([
createImageBitmap(greenCanvas),
]).then(([greenImage]) => {
testTransferFromImageBitmapNullability(greenImage);
});
},'Test that transferToImageBitmap works and that resets the imagebitmap to black');
</script>