mirror of
https://github.com/classilla/tenfourfox.git
synced 2025-01-01 06:33:22 +00:00
91 lines
2.3 KiB
HTML
91 lines
2.3 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>OffscreenCanvas: Test subworkers</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" href="/tests/SimpleTest/test.css">
|
|
</head>
|
|
<body>
|
|
<!--
|
|
We want to test offscreen canvas works well when it running on worker
|
|
and nested worker simultaneously. So we create 10 canvas and dispatch
|
|
it to different workers and sub-workers.
|
|
-->
|
|
<script>
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
function createCanvas() {
|
|
var htmlCanvas = document.createElement('canvas');
|
|
htmlCanvas.width = 64;
|
|
htmlCanvas.height = 64;
|
|
document.body.appendChild(htmlCanvas);
|
|
return htmlCanvas.transferControlToOffscreen();
|
|
}
|
|
|
|
function runTest() {
|
|
|
|
var worker = new Worker("offscreencanvas.js");
|
|
|
|
worker.onmessage = function(evt) {
|
|
var msg = evt.data || {};
|
|
if (msg.type == "test") {
|
|
ok(msg.result, msg.name);
|
|
}
|
|
if (msg.type == "finish") {
|
|
worker.terminate();
|
|
SimpleTest.finish();
|
|
}
|
|
}
|
|
|
|
var findTransferables = function(t) {
|
|
if (t.test == "subworker") {
|
|
var result = [];
|
|
t.subtests.forEach(function(test) {
|
|
result = result.concat(findTransferables(test));
|
|
});
|
|
|
|
return result;
|
|
} else {
|
|
return [t.canvas];
|
|
}
|
|
};
|
|
|
|
var testData =
|
|
{test: 'subworker', subtests: [
|
|
{test: 'webgl', canvas: createCanvas()},
|
|
{test: 'subworker', subtests: [
|
|
{test: 'webgl', canvas: createCanvas()},
|
|
{test: 'webgl_changesize', canvas: createCanvas()},
|
|
{test: 'webgl', canvas: createCanvas()}
|
|
]},
|
|
{test: 'subworker', subtests: [
|
|
{test: 'webgl', canvas: createCanvas()},
|
|
{test: 'webgl_changesize', canvas: createCanvas()},
|
|
{test: 'subworker', subtests: [
|
|
{test: 'webgl_changesize', canvas: createCanvas()},
|
|
{test: 'webgl', canvas: createCanvas()}
|
|
]},
|
|
{test: 'subworker', subtests: [
|
|
{test: 'webgl_changesize', canvas: createCanvas()},
|
|
{test: 'subworker', subtests: [
|
|
{test: 'subworker', subtests: [
|
|
{test: 'webgl_changesize', canvas: createCanvas()}
|
|
]}
|
|
]}
|
|
]},
|
|
]}
|
|
]};
|
|
|
|
worker.postMessage(testData, findTransferables(testData));
|
|
}
|
|
|
|
SpecialPowers.pushPrefEnv({'set': [
|
|
['gfx.offscreencanvas.enabled', true],
|
|
['webgl.force-enabled', true],
|
|
]}, runTest);
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|