OLD | NEW |
| 1 // Track the number of clients for this worker - tests can use this to ensure |
| 2 // that shared workers are actually shared, not distinct. |
| 3 var num_clients = 0; |
| 4 |
1 if (!self.postMessage) { | 5 if (!self.postMessage) { |
2 // This is a shared worker - mimic dedicated worker APIs | 6 // This is a shared worker - mimic dedicated worker APIs |
3 onconnect = function(event) { | 7 onconnect = function(event) { |
| 8 num_clients++; |
4 event.ports[0].onmessage = function(e) { | 9 event.ports[0].onmessage = function(e) { |
| 10 self.postMessage = function(msg) { |
| 11 event.ports[0].postMessage(msg); |
| 12 }; |
5 self.onmessage(e); | 13 self.onmessage(e); |
6 }; | 14 }; |
7 self.postMessage = function(msg, ports) { | |
8 event.ports[0].postMessage(msg, ports); | |
9 }; | |
10 }; | 15 }; |
| 16 } else { |
| 17 num_clients++; |
11 } | 18 } |
12 onmessage = function(evt) { | 19 onmessage = function(evt) { |
13 if (evt.data == "ping") | 20 if (evt.data == "ping") |
14 postMessage("pong"); | 21 postMessage("pong"); |
15 else if (evt.data == "auth") | 22 else if (evt.data == "auth") |
16 importScripts("/auth-basic"); | 23 importScripts("/auth-basic"); |
| 24 else if (evt.data == "close") |
| 25 close(); |
17 else if (/eval.+/.test(evt.data)) { | 26 else if (/eval.+/.test(evt.data)) { |
18 try { | 27 try { |
19 postMessage(eval(evt.data.substr(5))); | 28 postMessage(eval(evt.data.substr(5))); |
20 } catch (ex) { | 29 } catch (ex) { |
21 postMessage(ex); | 30 postMessage(ex); |
22 } | 31 } |
23 } | 32 } |
24 } | 33 } |
OLD | NEW |