mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
cabee82044
Backed out changeset 82320c900699 (bug 801176) Backed out changeset 624fb8512ba5 (bug 801176) Backed out changeset a2a7b1c4dc5b (bug 801176) Backed out changeset e210473d793c (bug 801176) Backed out changeset 0fb279e041e1 (bug 801176) Backed out changeset c090dc98c670 (bug 801176) Backed out changeset fc509e59a0cd (bug 801176) Backed out changeset 134a8c56335a (bug 801176) Backed out changeset 2022afa9aef2 (bug 801176)
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>
|