diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /dom/canvas/test/test_imagebitmap_close.html | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/canvas/test/test_imagebitmap_close.html')
-rw-r--r-- | dom/canvas/test/test_imagebitmap_close.html | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/dom/canvas/test/test_imagebitmap_close.html b/dom/canvas/test/test_imagebitmap_close.html new file mode 100644 index 000000000..86e14d67d --- /dev/null +++ b/dom/canvas/test/test_imagebitmap_close.html @@ -0,0 +1,93 @@ +<!DOCTYPE HTML> +<html> +<head> +<title>WebGL in OffscreenCanvas</title> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<script src="/tests/SimpleTest/WindowSnapshot.js"></script> +<link rel="stylesheet" href="/tests/SimpleTest/test.css"> +</head> +<body> +<script type="text/js-worker"> +function ok(expect, msg) { + postMessage({"type": "status", status: !!expect, msg: msg}); +} + +onmessage = function(event) { + var bitmap = event.data.bitmap; + ok(!!bitmap, "Get the ImageBitmap from the main script."); + bitmap.close(); + ok(bitmap.width == 0 && bitmap.height == 0, "After close(), width and height should return 0"); + postMessage({"type": "finish"}); +} +</script> +<script> + +SimpleTest.waitForExplicitFinish(); + +function createCanvas() { + var htmlCanvas = document.createElement('canvas'); + htmlCanvas.width = 64; + htmlCanvas.height = 64; + document.body.appendChild(htmlCanvas); + return htmlCanvas; +} + +function runTest() { + var canvas1 = createCanvas(); + var ctx = canvas1.getContext("2d"); + ctx.fillStyle = "#00FF00"; + ctx.fillRect(0, 0, 64, 64); + + var canvasRef = createCanvas(); + var ctx = canvasRef.getContext("2d"); + ctx.fillStyle = "#00FF00"; + ctx.fillRect(0, 0, 64, 64); + + createImageBitmap(canvas1).then(function(bmp) { + var canvas2 = createCanvas(); + var ctx2 = canvas2.getContext("2d"); + ctx2.drawImage(bmp, 0, 0); + + ok(canvasRef.toDataURL() == canvas2.toDataURL(), "toDataURL should return same result."); + document.body.removeChild(canvas2); + + bmp.close(); + ok(bmp.width == 0 && bmp.height == 0, "After close(), width and height should return 0"); + var canvas2 = createCanvas(); + var ctx2 = canvas2.getContext("2d"); + var beforeDrawImageDataURL = canvas2.toDataURL(); + ctx2.drawImage(bmp, 0, 0); + var afterDrawImageDataURL = canvas2.toDataURL(); + ok(beforeDrawImageDataURL == afterDrawImageDataURL, + "Drawing operations with a closed ImageBitmap should do nothing."); + runTestOnWorker(); + }); +} + +function runTestOnWorker() { + var canvas1 = createCanvas(); + var ctx = canvas1.getContext("2d"); + ctx.fillStyle = "#00FF00"; + ctx.fillRect(0, 0, 64, 64); + + var blob = new Blob(Array.prototype.map.call(document.querySelectorAll("script[type=\"text\/js-worker\"]"), function (oScript) { return oScript.textContent; }),{type: "text/javascript"}); + + var worker = new Worker(window.URL.createObjectURL(blob)); + + createImageBitmap(canvas1).then(function(bmp) { + worker.postMessage({bitmap: bmp}, [bmp]); + worker.onmessage = function(event) { + if (event.data.type == "status") { + ok(event.data.status, event.data.msg); + } else if (event.data.type == "finish") { + SimpleTest.finish(); + } + } + }); +} + +runTest(); + +</script> +</body> +</html> |