forked from mirrors/gecko-dev
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
56 lines
2.1 KiB
HTML
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>
|