4 Tests of DOM Worker Threads (Bug 437152)
7 <title>Test for DOM Worker Threads (Bug
437152)
</title>
8 <script type=
"text/javascript" src=
"/MochiKit/MochiKit.js"></script>
9 <script type=
"text/javascript" src=
"/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css" />
13 <a target=
"_blank" href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=437152">DOM Worker Threads Bug
437152</a>
15 <div id=
"content" style=
"display: none">
19 <script class=
"testbody" type=
"text/javascript">
21 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
23 var prefs = Components.classes[
"@mozilla.org/preferences-service;1"].
24 getService(Components.interfaces.nsIPrefBranch);
25 //prefs.setIntPref(
"javascript.options.gczeal",
2);
28 "function messageListener(message, source) { " +
29 " switch (message) { " +
31 " /* do a ton of stuff! */ " +
32 " for (var i = 0; i < 10000000; i++) { } " +
33 " dump('done!\\n'); " +
34 " /* pass message to source */ " +
35 " source.postMessage('done'); " +
38 " throw 'Bad message: ' + message; " +
43 var pool = navigator.newWorkerPool();
44 ok(pool,
"Couldn't get worker pool");
46 const numThreads =
10;
49 pool.messageListener = function(message, source) {
50 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
53 if (++doneThreads == numThreads) {
54 prefs.setIntPref(
"javascript.options.gczeal",
0);
59 ok(false,
"Unexpected message");
60 prefs.setIntPref(
"javascript.options.gczeal",
0);
65 pool.errorListener = function(error, source) {
66 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
67 ok(false,
"Worker had an error");
68 prefs.setIntPref(
"javascript.options.gczeal",
0);
72 for (var i =
0; i < numThreads; i++) {
73 var worker = pool.createWorker(workerScript);
74 worker.postMessage(
"start");
77 SimpleTest.waitForExplicitFinish();