| Index: content/browser/service_worker/service_worker_version.cc
|
| diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
|
| index 64453fdb1ca136c38ed706cdf6305fac60381a26..494b5ba090626fdd06c7c671f2dba1c9a7ae5f38 100644
|
| --- a/content/browser/service_worker/service_worker_version.cc
|
| +++ b/content/browser/service_worker/service_worker_version.cc
|
| @@ -389,9 +389,11 @@ void ServiceWorkerVersion::RemoveControllee(
|
| RemoveProcessFromWorker(provider_host->process_id());
|
| if (HasControllee())
|
| return;
|
| - ScheduleStopWorker();
|
| - if (is_doomed_)
|
| + if (is_doomed_) {
|
| DoomInternal();
|
| + return;
|
| + }
|
| + ScheduleStopWorker();
|
| }
|
|
|
| void ServiceWorkerVersion::AddPotentialControllee(
|
| @@ -667,7 +669,9 @@ void ServiceWorkerVersion::ScheduleStopWorker() {
|
| }
|
|
|
| void ServiceWorkerVersion::DoomInternal() {
|
| + DCHECK(!HasControllee());
|
| SetStatus(REDUNDANT);
|
| + StopWorker(base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
|
| if (!context_)
|
| return;
|
| std::vector<ServiceWorkerDatabase::ResourceRecord> resources;
|
|
|