<!-- Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ --> <html> <head> <title>Test for DOM Worker Threads</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> </head> <body> <pre id="test"> <script class="testbody" type="text/javascript"> "use strict"; var loadErrorMessage = 'SecurityError: Failed to load worker script at "about:blank"'; function nextTest() { (function(){ function workerfunc() { var subworker = new Worker("about:blank"); subworker.onerror = function(e) { e.preventDefault(); postMessage(e.message); } } var b = new Blob([workerfunc+'workerfunc();']); var u = URL.createObjectURL(b); function callworker(i) { try { var w = new Worker(u); URL.revokeObjectURL(u); is(i, 0, 'worker creation succeeded'); } catch (e) { is(i, 1, 'worker creation failed'); SimpleTest.finish(); return; } w.onmessage = function(e) { is(e.data, loadErrorMessage, "Should catch the error when loading inner script"); if (++i < 2) callworker(i); else SimpleTest.finish(); }; w.onerrror = function(e) { ok(false, "Should not get any errors from this worker"); } } callworker(0); })(); } try { var worker = new Worker("about:blank"); worker.onerror = function(e) { e.preventDefault(); is(e.message, loadErrorMessage, "Should get the right error from the toplevel script"); nextTest(); } worker.onmessage = function(event) { ok(false, "Shouldn't get a message!"); SimpleTest.finish(); } } catch (e) { ok(false, "This should not happen."); } SimpleTest.waitForExplicitFinish(); </script> </pre> </body> </html>