Index: content/browser/service_worker/service_worker_process_manager.cc |
diff --git a/content/browser/service_worker/service_worker_process_manager.cc b/content/browser/service_worker/service_worker_process_manager.cc |
index 2300811cf30ea27fe98261337038c0e1fb3c67a1..4b559edce8ae74a30827778fd678fe8939780248 100644 |
--- a/content/browser/service_worker/service_worker_process_manager.cc |
+++ b/content/browser/service_worker/service_worker_process_manager.cc |
@@ -234,9 +234,11 @@ void ServiceWorkerProcessManager::ReleaseWorkerProcess(int embedded_worker_id) { |
std::map<int, ProcessInfo>::iterator info = |
instance_info_.find(embedded_worker_id); |
- // TODO(nhiroki): Make sure the instance info is not mixed up. |
- // (http://crbug.com/568915) |
- CHECK(info != instance_info_.end()); |
+ // ReleaseWorkerProcess could be called for a nonexistent worker id, for |
+ // example, when request to start a worker is aborted on the IO thread during |
+ // process allocation that is failed on the UI thread. |
+ if (info == instance_info_.end()) |
+ return; |
RenderProcessHost* rph = NULL; |
if (info->second.site_instance.get()) { |