OLD | NEW |
1 <body> | 1 <body> |
2 <p>Test simple shared worker sharing cases. Should print several PASS lines foll
owed by DONE.</p> | 2 <p>Test simple shared worker sharing cases. Should print several PASS lines foll
owed by DONE.</p> |
3 <div id=result></div> | 3 <div id=result></div> |
4 <script> | 4 <script> |
5 function log(message) | 5 function log(message) |
6 { | 6 { |
7 document.getElementById("result").innerHTML += message + "<br>"; | 7 document.getElementById("result").innerHTML += message + "<br>"; |
8 } | 8 } |
9 | 9 |
10 if (window.testRunner) { | 10 if (window.testRunner) { |
11 testRunner.dumpAsText(); | 11 testRunner.dumpAsText(); |
12 testRunner.waitUntilDone(); | 12 testRunner.waitUntilDone(); |
13 } | 13 } |
14 | 14 |
15 // Load two workers simultaneously, to ensure that simultaneous loads also yield
the same instance. | 15 // Load two workers simultaneously, to ensure that simultaneous loads also yield
the same instance. |
16 // Loading a worker named "name" tests that workers shutdown when the parent doc
ument exits, because other tests also create workers with that same name but wit
h different URLs. | 16 // Loading a worker named "name" tests that workers shutdown when the parent doc
ument exits, because other tests also create workers with that same name but wit
h different URLs. |
17 var worker = new SharedWorker('resources/shared-worker-common.js', 'name'); | 17 var worker = new SharedWorker('resources/shared-worker-common.js', 'name'); |
18 var worker2 = new SharedWorker('resources/shared-worker-common.js', 'name'); | 18 var worker2 = new SharedWorker('resources/shared-worker-common.js', 'name'); |
19 | 19 |
20 try { | 20 try { |
21 new SharedWorker('resources/some-other-url.js', 'name'); | 21 new SharedWorker('resources/some-other-url.js', 'name'); |
22 log("FAIL: Creating SharedWorker with different URLs but the same name shoul
d fail"); | 22 log("PASS: Creating SharedWorker with different URLs but the same name"); |
23 } catch (ex) { | 23 } catch (ex) { |
24 var exString = ex.toString(); | 24 var exString = ex.toString(); |
25 exString = exString.replace(/file:\/\/.*\//, "") | 25 exString = exString.replace(/file:\/\/.*\//, "") |
26 log("PASS: Exception thrown when creating SharedWorker with different URLs b
ut same name: " + exString); | 26 log("FAIL: Exception thrown when creating SharedWorker with different URLs b
ut same name: " + exString); |
27 } | 27 } |
28 | 28 |
29 | 29 |
30 // Set something in global context in one worker, read value back on other worke
r, to make sure they are truly shared. | 30 // Set something in global context in one worker, read value back on other worke
r, to make sure they are truly shared. |
31 worker.port.postMessage("eval self.foo"); | 31 worker.port.postMessage("eval self.foo"); |
32 worker.port.onmessage = function(event) | 32 worker.port.onmessage = function(event) |
33 { | 33 { |
34 log((event.data == "self.foo: undefined" ? "PASS: " : "FAIL: ") + "Accessing
new instance of shared worker: " + event.data); | 34 log((event.data == "self.foo: undefined" ? "PASS: " : "FAIL: ") + "Accessing
new instance of shared worker: " + event.data); |
35 worker.port.postMessage("eval self.foo = 1234"); | 35 worker.port.postMessage("eval self.foo = 1234"); |
36 worker.port.onmessage = function(event) | 36 worker.port.onmessage = function(event) |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 } | 70 } |
71 | 71 |
72 function done() | 72 function done() |
73 { | 73 { |
74 log("DONE"); | 74 log("DONE"); |
75 if (window.testRunner) | 75 if (window.testRunner) |
76 testRunner.notifyDone(); | 76 testRunner.notifyDone(); |
77 } | 77 } |
78 </script> | 78 </script> |
79 </body> | 79 </body> |
OLD | NEW |