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 e63bb732e46fe85c7dfbc23ee70c3a8a004429a2..eee4db6b96dbc093e30e724946eaf14fc3f8a1fd 100644 |
--- a/content/browser/service_worker/embedded_worker_registry.cc |
+++ b/content/browser/service_worker/embedded_worker_registry.cc |
@@ -305,7 +305,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); |