Index: chrome/test/data/workers/queued_shared_worker_shutdown.html |
diff --git a/chrome/test/data/workers/queued_shared_worker_shutdown.html b/chrome/test/data/workers/queued_shared_worker_shutdown.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3a6163f42032782d374180b63ed9b012139e6451 |
--- /dev/null |
+++ b/chrome/test/data/workers/queued_shared_worker_shutdown.html |
@@ -0,0 +1,48 @@ |
+<html> |
+<body> |
+<div id=result></div> |
+<script> |
+function log(message) |
+{ |
+ document.getElementById("result").innerHTML += message + "<br>"; |
+} |
+ |
+var url = document.location.toString(); |
+var num_workers = parseInt(url.substr(url.search("count=") + 6)); |
+ |
+if (!num_workers) { |
+ log("No count= parameter provided - test aborted"); |
+} else { |
+ for (var i = 0; i < num_workers ; ++i) { |
+ createWorker(i); |
+ } |
+ |
+ // Create two extra workers - these should both be queued, and launched as a |
+ // single instance when we shutdown a worker. |
+ createWorker(num_workers); |
+ createWorker(num_workers); |
+} |
+ |
+var workers_created = 0; |
+function createWorker(i) { |
+ var worker = new SharedWorker("worker_common.js?id=" + i); |
+ worker.port.postMessage("ping"); |
+ worker.port.onmessage = function() { |
+ workers_created++; |
+ log("worker " + i + " started"); |
+ if (workers_created == num_workers) { |
+ // We've created all of our workers. Let's shut down the most recent one |
+ // and see if we startup the queued worker. |
+ log("Shutting down worker " + i); |
+ worker.port.postMessage("close"); |
+ } else if (workers_created == (num_workers+2)) { |
+ // created the last worker |
+ log("SUCCESS: queued worker created"); |
+ document.cookie = "status=OK"; |
+ } |
+ } |
+} |
+</script> |
+ |
+</body> |
+</html> |