Index: content/browser/service_worker/embedded_worker_registry.cc |
diff --git a/content/browser/service_worker/embedded_worker_registry.cc b/content/browser/service_worker/embedded_worker_registry.cc |
index 249eab082b21ce3100114299d1da2811217b671b..b1a741b939904d0c8927304ce7f2bfb63e1d1058 100644 |
--- a/content/browser/service_worker/embedded_worker_registry.cc |
+++ b/content/browser/service_worker/embedded_worker_registry.cc |
@@ -5,9 +5,13 @@ |
#include "content/browser/service_worker/embedded_worker_registry.h" |
#include "base/stl_util.h" |
+#include "content/browser/devtools/shared_worker_devtools_manager.h" |
#include "content/browser/service_worker/embedded_worker_instance.h" |
#include "content/browser/service_worker/service_worker_context_core.h" |
#include "content/common/service_worker/embedded_worker_messages.h" |
+#include "content/common/service_worker/service_worker_messages.h" |
+#include "content/public/browser/browser_thread.h" |
+#include "content/public/browser/render_process_host.h" |
#include "ipc/ipc_message.h" |
#include "ipc/ipc_sender.h" |
@@ -30,11 +34,20 @@ ServiceWorkerStatusCode EmbeddedWorkerRegistry::StartWorker( |
int embedded_worker_id, |
int64 service_worker_version_id, |
const GURL& scope, |
- const GURL& script_url) { |
+ const GURL& script_url, |
+ int* worker_devtools_agent_route_id) { |
+ ProcessToNextRoutingIDCallbackMap::iterator found_callback = |
+ process_next_id_callback_map_.find(process_id); |
+ if (found_callback == process_next_id_callback_map_.end()) |
+ return SERVICE_WORKER_ERROR_PROCESS_NOT_FOUND; |
+ *worker_devtools_agent_route_id = found_callback->second.Run(); |
return Send( |
process_id, |
- new EmbeddedWorkerMsg_StartWorker( |
- embedded_worker_id, service_worker_version_id, scope, script_url)); |
+ new EmbeddedWorkerMsg_StartWorker(embedded_worker_id, |
+ service_worker_version_id, |
+ scope, |
+ script_url, |
+ *worker_devtools_agent_route_id)); |
} |
ServiceWorkerStatusCode EmbeddedWorkerRegistry::StopWorker( |
@@ -135,6 +148,17 @@ void EmbeddedWorkerRegistry::RemoveChildProcessSender(int process_id) { |
} |
} |
+void EmbeddedWorkerRegistry::AddChildProcessNextRoutingIDCallback( |
+ int process_id, |
+ const base::Callback<int(void)>& callback) { |
+ process_next_id_callback_map_.insert(std::make_pair(process_id, callback)); |
kinuko
2014/04/25 13:56:57
It might be nicer if AddChildProcessSender() can j
|
+} |
+ |
+void EmbeddedWorkerRegistry::RemoveChildProcessNextRoutingIDCallback( |
+ int process_id) { |
+ process_next_id_callback_map_.erase(process_id); |
+} |
+ |
EmbeddedWorkerInstance* EmbeddedWorkerRegistry::GetWorker( |
int embedded_worker_id) { |
WorkerInstanceMap::iterator found = worker_map_.find(embedded_worker_id); |