test_offscreencanvas_sharedworker.html (1201B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>WebGL in OffscreenCanvas</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" href="/tests/SimpleTest/test.css"> 7 </head> 8 <body> 9 <canvas id="c" width="64" height="64"></canvas> 10 <script> 11 12 SimpleTest.waitForExplicitFinish(); 13 14 function runTest() { 15 16 var htmlCanvas = document.getElementById("c"); 17 var worker = new SharedWorker("offscreencanvas.js"); 18 19 ok(htmlCanvas, "Should have HTML canvas element"); 20 ok(worker, "Web worker successfully created"); 21 22 ok(htmlCanvas.transferControlToOffscreen, "HTMLCanvasElement has transferControlToOffscreen function"); 23 24 var offscreenCanvas = htmlCanvas.transferControlToOffscreen(); 25 ok(offscreenCanvas, "Expected transferControlToOffscreen to succeed"); 26 27 worker.port.start(); 28 29 // We don't support transferring OffscreenCanvas via shared worker. 30 SimpleTest.doesThrow( 31 function() { 32 worker.port.postMessage({test: 'webgl', canvas: offscreenCanvas}, [offscreenCanvas]); 33 }, 34 "OffscreenCanvas cannot transfer to shared worker" 35 ); 36 37 SimpleTest.finish(); 38 } 39 40 SpecialPowers.pushPrefEnv({'set': [ 41 ['webgl.force-enabled', true], 42 ]}, runTest); 43 44 </script> 45 </body> 46 </html>