| Index: content/browser/service_worker/service_worker_dispatcher_host.cc | 
| diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc | 
| index 696c5c1867bd8ee95b9c45ce2c8b0ff3e4cf97d0..f1e399bb9d14d9f5846694aaf384b2d6c11fbdfe 100644 | 
| --- a/content/browser/service_worker/service_worker_dispatcher_host.cc | 
| +++ b/content/browser/service_worker/service_worker_dispatcher_host.cc | 
| @@ -5,6 +5,7 @@ | 
| #include "content/browser/service_worker/service_worker_dispatcher_host.h" | 
|  | 
| #include "base/strings/utf_string_conversions.h" | 
| +#include "content/browser/service_worker/embedded_worker_registry.h" | 
| #include "content/browser/service_worker/service_worker_context_core.h" | 
| #include "content/browser/service_worker/service_worker_context_wrapper.h" | 
| #include "content/browser/service_worker/service_worker_provider_host.h" | 
| @@ -37,8 +38,11 @@ ServiceWorkerDispatcherHost::ServiceWorkerDispatcherHost( | 
| } | 
|  | 
| ServiceWorkerDispatcherHost::~ServiceWorkerDispatcherHost() { | 
| -  if (context_) | 
| +  if (context_) { | 
| context_->RemoveAllProviderHostsForProcess(render_process_id_); | 
| +    context_->embedded_worker_registry()->RemoveChildProcessSender( | 
| +        render_process_id_); | 
| +  } | 
| } | 
|  | 
| void ServiceWorkerDispatcherHost::Init( | 
| @@ -51,6 +55,8 @@ void ServiceWorkerDispatcherHost::Init( | 
| return; | 
| } | 
| context_ = context_wrapper->context()->AsWeakPtr(); | 
| +  context_->embedded_worker_registry()->AddChildProcessSender( | 
| +      render_process_id_, this); | 
| } | 
|  | 
| void ServiceWorkerDispatcherHost::OnDestruct() const { | 
|  |