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 0ccc2e40341d11a9da3e70b6527615385cf314ca..51504fe36536b4ef5a4ac31fd4e9dc07afc5380e 100644 |
--- a/content/browser/service_worker/service_worker_registration.cc |
+++ b/content/browser/service_worker/service_worker_registration.cc |
@@ -303,10 +303,12 @@ void ServiceWorkerRegistration::OnActivateEventFinished( |
id(), pattern().GetOrigin(), |
base::Bind(&ServiceWorkerRegistration::OnDeleteFinished, this)); |
// But not from memory if there is a version in the pipeline. |
- if (installing_version()) |
+ if (installing_version()) { |
is_deleted_ = false; |
- else |
+ } else { |
is_uninstalled_ = true; |
+ FOR_EACH_OBSERVER(Listener, listeners_, OnRegistrationFailed(this)); |
+ } |
} |
return; |
} |
@@ -355,6 +357,9 @@ void ServiceWorkerRegistration::Clear() { |
FOR_EACH_OBSERVER(Listener, listeners_, |
OnVersionAttributesChanged(this, mask, info)); |
} |
+ |
+ FOR_EACH_OBSERVER( |
+ Listener, listeners_, OnRegistrationFinishedUninstalling(this)); |
} |
void ServiceWorkerRegistration::OnRestoreFinished( |