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 51d3c2c5ca2d368f5c1dbb27e3277fdad58fe1cf..e63bb732e46fe85c7dfbc23ee70c3a8a004429a2 100644 |
| --- a/content/browser/service_worker/embedded_worker_registry.cc |
| +++ b/content/browser/service_worker/embedded_worker_registry.cc |
| @@ -245,7 +245,7 @@ EmbeddedWorkerRegistry::~EmbeddedWorkerRegistry() { |
| } |
| ServiceWorkerStatusCode EmbeddedWorkerRegistry::SendStartWorker( |
| - std::unique_ptr<EmbeddedWorkerMsg_StartWorker_Params> params, |
| + std::unique_ptr<EmbeddedWorkerStartParams> params, |
| int process_id) { |
| if (!context_) |
| return SERVICE_WORKER_ERROR_ABORT; |
| @@ -265,10 +265,30 @@ ServiceWorkerStatusCode EmbeddedWorkerRegistry::SendStartWorker( |
| ServiceWorkerStatusCode status = |
| Send(process_id, new EmbeddedWorkerMsg_StartWorker(*params)); |
| if (status == SERVICE_WORKER_OK) |
| - worker_process_map_[process_id].insert(embedded_worker_id); |
| + BindWorkerToProcess(process_id, embedded_worker_id); |
| return status; |
| } |
| +ServiceWorkerStatusCode EmbeddedWorkerRegistry::BindWorkerToProcess( |
| + int process_id, |
| + int embedded_worker_id) { |
| + if (!context_) |
| + return SERVICE_WORKER_ERROR_ABORT; |
|
falken
2016/09/13 05:48:02
nit: If I understand correctly this function isn't
shimazu
2016/09/15 03:24:42
I think so. Removed.
|
| + |
| + // The ServiceWorkerDispatcherHost is supposed to be created when the process |
| + // is created, and keep an entry in process_sender_map_ for its whole |
| + // lifetime. |
| + DCHECK(base::ContainsKey(process_sender_map_, process_id)); |
| + DCHECK(GetWorker(embedded_worker_id)); |
| + DCHECK_EQ(GetWorker(embedded_worker_id)->process_id(), process_id); |
| + DCHECK( |
| + !base::ContainsKey(worker_process_map_, process_id) || |
| + !base::ContainsKey(worker_process_map_[process_id], embedded_worker_id)); |
| + |
| + worker_process_map_[process_id].insert(embedded_worker_id); |
| + return SERVICE_WORKER_OK; |
| +} |
| + |
| ServiceWorkerStatusCode EmbeddedWorkerRegistry::Send( |
| int process_id, IPC::Message* message_ptr) { |
| std::unique_ptr<IPC::Message> message(message_ptr); |