Index: content/browser/service_worker/service_worker_registration.cc |
diff --git a/content/browser/service_worker/service_worker_registration.cc b/content/browser/service_worker/service_worker_registration.cc |
index 9cd539d42567ca84cdd523fe209973bd1cd293e3..87eddefb6622071309f0ff33e9168fc5361d5b37 100644 |
--- a/content/browser/service_worker/service_worker_registration.cc |
+++ b/content/browser/service_worker/service_worker_registration.cc |
@@ -40,6 +40,7 @@ ServiceWorkerRegistration::ServiceWorkerRegistration( |
ServiceWorkerRegistration::~ServiceWorkerRegistration() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ DCHECK(!listeners_.might_have_observers()); |
if (context_) |
context_->RemoveLiveRegistration(registration_id_); |
ResetShouldActivateWhenReady(); |
@@ -141,6 +142,11 @@ void ServiceWorkerRegistration::ActivateWaitingVersionWhenReady() { |
ActivateWaitingVersion(); |
} |
+void ServiceWorkerRegistration::SetIsDeleted() { |
+ is_deleted_ = true; |
+ FOR_EACH_OBSERVER(Listener, listeners_, OnRegistrationDeleted(this)); |
+} |
+ |
void ServiceWorkerRegistration::OnNoControllees(ServiceWorkerVersion* version) { |
DCHECK_EQ(active_version(), version); |
DCHECK(should_activate_when_ready_); |
@@ -175,11 +181,7 @@ void ServiceWorkerRegistration::ActivateWaitingVersion() { |
// "5. Set serviceWorkerRegistration.activeWorker to activatingWorker." |
// "6. Set serviceWorkerRegistration.waitingWorker to null." |
- ServiceWorkerRegisterJob::DisassociateVersionFromDocuments( |
- context_, activating_version); |
SetActiveVersion(activating_version); |
- ServiceWorkerRegisterJob::AssociateActiveVersionToDocuments( |
- context_, activating_version); |
// "7. Run the [[UpdateState]] algorithm passing registration.activeWorker and |
// "activating" as arguments." |
@@ -202,8 +204,6 @@ void ServiceWorkerRegistration::OnActivateEventFinished( |
// unexpectedly terminated) we may want to retry sending the event again. |
if (status != SERVICE_WORKER_OK) { |
// "11. If activateFailed is true, then:..." |
- ServiceWorkerRegisterJob::DisassociateVersionFromDocuments( |
- context_, activating_version); |
UnsetVersion(activating_version); |
activating_version->Doom(); |
if (!waiting_version()) { |