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