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 d86cdef643b4990032a7d684f47b6f0501e89fe4..fff48b95cdc5cafd4edb680a5d87403481671bfa 100644 |
--- a/content/browser/service_worker/embedded_worker_registry.cc |
+++ b/content/browser/service_worker/embedded_worker_registry.cc |
@@ -300,7 +300,13 @@ ServiceWorkerStatusCode EmbeddedWorkerRegistry::Send( |
void EmbeddedWorkerRegistry::RemoveWorker(int process_id, |
int embedded_worker_id) { |
DCHECK(base::ContainsKey(worker_map_, embedded_worker_id)); |
+ DetachWorker(process_id, embedded_worker_id); |
worker_map_.erase(embedded_worker_id); |
+} |
+ |
+void EmbeddedWorkerRegistry::DetachWorker(int process_id, |
+ int embedded_worker_id) { |
+ DCHECK(base::ContainsKey(worker_map_, embedded_worker_id)); |
if (!base::ContainsKey(worker_process_map_, process_id)) |
return; |
worker_process_map_[process_id].erase(embedded_worker_id); |