blob: 9250720809a7e0c2f081a90275ef11ed189f554f [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<script>
description("Test OffscreenCanvas transferable with exception cases.");
window.jsTestIsAsync = true;
var worker = new Worker('./resources/OffscreenCanvas-transferable.js');
var width = 50;
var height = 50;
var offscreenCanvas1 = new OffscreenCanvas(width, height);
var ctx;
shouldNotThrow("ctx = offscreenCanvas1.getContext('2d')");
shouldBeType("ctx", "OffscreenCanvasRenderingContext2D");
try {
worker.postMessage({data: offscreenCanvas1}, [offscreenCanvas1]);
testFailed("Transfer an offscreenCanvas with a context succeed, expected to fail");
} catch(e) {
testPassed("Transfer an offscreenCanvas with a context should throw an exception: " + e);
}
var offscreenCanvas2 = new OffscreenCanvas(width, height);
worker.postMessage({data: offscreenCanvas2}, [offscreenCanvas2]);
try {
var image = offscreenCanvas2.transferToImageBitmap();
testFailed("Calling transferToImageBitmap from a neutered offscreenCanvas succeed, expected to fail");
} catch(e) {
testPassed("Calling transferToImageBitmap from a neutered offscreenCanvas should throw an exception: " + e);
}
try {
worker.postMessage({data: offscreenCanvas2}, [offscreenCanvas2]);
testFailed("Transfer a neutered offscreenCanvas succeed, expected to fail");
} catch(e) {
testPassed("Transfer a neutered offscreenCanvas should throw an exception: " + e);
}
try {
var ctx = offscreenCanvas2.getContext('2d');
testFailed("Calling getContext('2d') from a neutered offscreenCanvas succeed, expected to fail");
} catch(e) {
testPassed("Calling getContext('2d') from a neutered offscreenCanvas should throw an exception: " + e);
}
finishJSTest();
</script>
</body>
</html>