Chromium Code Reviews| 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); |