| 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 dabee1d13b43ac99edcc89d346f01a1ac0b3758b..2bb6499487916db409c6eecbd9c10cae0863b7e2 100644
|
| --- a/content/browser/service_worker/service_worker_provider_host.cc
|
| +++ b/content/browser/service_worker/service_worker_provider_host.cc
|
| @@ -81,6 +81,14 @@ void ServiceWorkerProviderHost::OnRegistrationFailed(
|
| DisassociateRegistration();
|
| }
|
|
|
| +void ServiceWorkerProviderHost::OnSkippedWaiting(
|
| + ServiceWorkerRegistration* registration) {
|
| + DCHECK_EQ(associated_registration_.get(), registration);
|
| + ServiceWorkerVersion* active_version = registration->active_version();
|
| + DCHECK_EQ(active_version->status(), ServiceWorkerVersion::ACTIVATING);
|
| + SetControllerVersionAttribute(active_version);
|
| +}
|
| +
|
| void ServiceWorkerProviderHost::SetDocumentUrl(const GURL& url) {
|
| DCHECK(!url.has_ref());
|
| document_url_ = url;
|
| @@ -105,8 +113,12 @@ void ServiceWorkerProviderHost::SetControllerVersionAttribute(
|
| if (!dispatcher_host_)
|
| return; // Could be NULL in some tests.
|
|
|
| + bool should_notify_controllerchange =
|
| + previous_version && version && version->skip_waiting();
|
| +
|
| dispatcher_host_->Send(new ServiceWorkerMsg_SetControllerServiceWorker(
|
| - kDocumentMainThreadId, provider_id(), CreateHandleAndPass(version)));
|
| + kDocumentMainThreadId, provider_id(), CreateHandleAndPass(version),
|
| + should_notify_controllerchange));
|
| }
|
|
|
| bool ServiceWorkerProviderHost::SetHostedVersionId(int64 version_id) {
|
| @@ -277,7 +289,8 @@ void ServiceWorkerProviderHost::CompleteCrossSiteTransfer(
|
| if (dispatcher_host_ && associated_registration_->active_version()) {
|
| dispatcher_host_->Send(new ServiceWorkerMsg_SetControllerServiceWorker(
|
| kDocumentMainThreadId, provider_id(),
|
| - CreateHandleAndPass(associated_registration_->active_version())));
|
| + CreateHandleAndPass(associated_registration_->active_version()),
|
| + false /* shouldNotifyControllerChange */));
|
| }
|
| }
|
| }
|
|
|