Index: content/child/service_worker/web_service_worker_provider_impl.cc |
diff --git a/content/child/service_worker/web_service_worker_provider_impl.cc b/content/child/service_worker/web_service_worker_provider_impl.cc |
index e2a2574c6ee8dd95dd08758f12c36cd6c934f565..22039f229c66d0b61ee8d9e99c54a14be2aaf118 100644 |
--- a/content/child/service_worker/web_service_worker_provider_impl.cc |
+++ b/content/child/service_worker/web_service_worker_provider_impl.cc |
@@ -53,6 +53,10 @@ void WebServiceWorkerProviderImpl::setClient( |
GetDispatcher()->GetOrCreateServiceWorker( |
ServiceWorkerHandleReference::Create(context_->controller()->info(), |
thread_safe_sender_.get())); |
+ |
+ // Sync the controllee's use counter with the service worker's one. |
+ for (uint32_t feature : context_->used_features()) |
+ client->countFeature(feature); |
client->setController(WebServiceWorkerImpl::CreateHandle(controller), |
false /* shouldNotifyControllerChange */); |
} |