Index: chrome/browser/worker_host/worker_process_host.cc |
diff --git a/chrome/browser/worker_host/worker_process_host.cc b/chrome/browser/worker_host/worker_process_host.cc |
index 9dbfe05e99bbc138d947d5b585ded3553f477e30..3c3113d692da084560721ae0a0704f9650eb91b3 100644 |
--- a/chrome/browser/worker_host/worker_process_host.cc |
+++ b/chrome/browser/worker_host/worker_process_host.cc |
@@ -170,8 +170,15 @@ void WorkerProcessHost::CreateWorker(const WorkerInstance& instance) { |
instance.worker_route_id())); |
UpdateTitle(); |
- WorkerInstance::SenderInfo info = instances_.back().GetSender(); |
- info.first->Send(new ViewMsg_WorkerCreated(info.second)); |
+ |
+ // Walk all pending senders and let them know the worker has been created |
+ // (could be more than one in the case where we had to queue up worker |
+ // creation because the worker process limit was reached). |
+ for (WorkerInstance::SenderList::const_iterator i = |
+ instance.senders().begin(); |
+ i != instance.senders().end(); ++i) { |
+ i->first->Send(new ViewMsg_WorkerCreated(i->second)); |
+ } |
} |
bool WorkerProcessHost::FilterMessage(const IPC::Message& message, |