| Index: content/browser/service_worker/service_worker_provider_host.cc | 
| diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc | 
| index bd0c5ea3197e310de114dc2618f42abc0db0618d..b0d91d157d5ba56694e785daf909e4f66ba27db9 100644 | 
| --- a/content/browser/service_worker/service_worker_provider_host.cc | 
| +++ b/content/browser/service_worker/service_worker_provider_host.cc | 
| @@ -145,6 +145,15 @@ void ServiceWorkerProviderHost::AssociateRegistration( | 
| ServiceWorkerRegistration* registration) { | 
| DCHECK(CanAssociateRegistration(registration)); | 
| associated_registration_ = registration; | 
| + | 
| +  if (dispatcher_host_) { | 
| +    ServiceWorkerRegistrationObjectInfo info = | 
| +        dispatcher_host_->GetOrCreateRegistrationHandle( | 
| +            provider_id(), registration); | 
| +    dispatcher_host_->Send(new ServiceWorkerMsg_AssociateRegistration( | 
| +        kDocumentMainThreadId, provider_id(), info)); | 
| +  } | 
| + | 
| registration->AddListener(this); | 
| UpdatePotentialControllees(registration->installing_version(), | 
| registration->waiting_version(), | 
| @@ -155,6 +164,12 @@ void ServiceWorkerProviderHost::AssociateRegistration( | 
| void ServiceWorkerProviderHost::UnassociateRegistration() { | 
| if (!associated_registration_.get()) | 
| return; | 
| + | 
| +  if (dispatcher_host_) { | 
| +    dispatcher_host_->Send(new ServiceWorkerMsg_UnassociateRegistration( | 
| +        kDocumentMainThreadId, provider_id())); | 
| +  } | 
| + | 
| associated_registration_->RemoveListener(this); | 
| associated_registration_ = NULL; | 
| UpdatePotentialControllees(NULL, NULL, NULL); | 
|  |