Index: chrome/test/data/workers/worker_common.js |
diff --git a/chrome/test/data/workers/worker_common.js b/chrome/test/data/workers/worker_common.js |
index 664da580b24eb15b88b6a76fbbd892fdde90ec84..675de0de6d1b8fb4b59bee4151e440f86e25e41f 100644 |
--- a/chrome/test/data/workers/worker_common.js |
+++ b/chrome/test/data/workers/worker_common.js |
@@ -1,19 +1,28 @@ |
+// Track the number of clients for this worker - tests can use this to ensure |
+// that shared workers are actually shared, not distinct. |
+var num_clients = 0; |
+ |
if (!self.postMessage) { |
// This is a shared worker - mimic dedicated worker APIs |
onconnect = function(event) { |
+ num_clients++; |
event.ports[0].onmessage = function(e) { |
+ self.postMessage = function(msg) { |
+ event.ports[0].postMessage(msg); |
+ }; |
self.onmessage(e); |
}; |
- self.postMessage = function(msg, ports) { |
- event.ports[0].postMessage(msg, ports); |
- }; |
}; |
+} else { |
+ num_clients++; |
} |
onmessage = function(evt) { |
if (evt.data == "ping") |
postMessage("pong"); |
else if (evt.data == "auth") |
importScripts("/auth-basic"); |
+ else if (evt.data == "close") |
+ close(); |
else if (/eval.+/.test(evt.data)) { |
try { |
postMessage(eval(evt.data.substr(5))); |