fune/testing/web-platform/tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null.html
Juanmi Huertas 5b4082637f Bug 1556071 [wpt PR 17121] - Reland "Reland "Adding support to bitmaprenderer in OffscreenCanvas"", a=testonly
Automatic update from web-platform-tests
Reland "Reland "Adding support to bitmaprenderer in OffscreenCanvas""

Registering the factory on OffscreenCanvas in modules, adding
ImageBitmapRenderer to the union type for OffscreenCanvas.
Adding new functionality to bitmaprenderer to let it be used
in offscreencanvas.
Changing IDL and some tests to validate new functionality.
Adding a new virtual test to guarantee testing validation
of trasnsfertooffscreencanvas for bitmaprenderer.

Added bug: 969151 for the two missing tests.

TBR=chrishtr

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

--

wp5At-commits: 209c15ce44be1c7a9059167676843e1a711a2734
wpt-pr: 17121
2019-06-19 11:06:34 -07:00

65 lines
2.4 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, redImage) {
var bitmapCanvas = document.createElement('canvas');
bitmapCanvas.width = width;
bitmapCanvas.height = height;
var bitmapCtx = bitmapCanvas.getContext('bitmaprenderer');
bitmapCtx.transferFromImageBitmap(greenImage);
// Make sure the bitmap renderer canvas is filled correctly.
testCanvas(bitmapCanvas, 0, 255, 0, 255);
// Test if passing null resets the bitmap renderer canvas.
// Drawing the resetted canvas cannot change the destination canvas.
bitmapCtx.transferFromImageBitmap(null);
testCanvas(bitmapCanvas, 0, 0, 0, 0);
// Test if we can redraw the bitmap canvas correctly after reset.
bitmapCtx.transferFromImageBitmap(redImage);
testCanvas(bitmapCanvas, 255, 0, 0, 255);
}
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);
var redCanvas = document.createElement('canvas');
redCanvas.width = width;
redCanvas.height = height;
var redCtx = redCanvas.getContext('2d');
redCtx.fillStyle = '#f00';
redCtx.fillRect(0, 0, width, height);
return Promise.all([
createImageBitmap(greenCanvas),
createImageBitmap(redCanvas),
]).then(([greenImage, redImage]) => {
testTransferFromImageBitmapNullability(greenImage, redImage);
});
},'Test that transferFromImageBitmap(null) discards the previously transferred image');
</script>