| 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 ae48d1dc0f889baa6052bc62e1d2a5c58ee1ed00..929384d21b85f2c811423cb24c25bedfded89869 100644
|
| --- a/content/browser/service_worker/service_worker_registration.cc
|
| +++ b/content/browser/service_worker/service_worker_registration.cc
|
| @@ -272,6 +272,7 @@ void ServiceWorkerRegistration::ActivateWaitingVersion() {
|
| // "6. Set serviceWorkerRegistration.activeWorker to activatingWorker."
|
| // "7. Set serviceWorkerRegistration.waitingWorker to null."
|
| SetActiveVersion(activating_version.get());
|
| + FOR_EACH_OBSERVER(Listener, listeners_, OnActivateVersion(this));
|
|
|
| // "8. Run the [[UpdateState]] algorithm passing registration.activeWorker and
|
| // "activating" as arguments."
|
| @@ -303,10 +304,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 +358,9 @@ void ServiceWorkerRegistration::Clear() {
|
| FOR_EACH_OBSERVER(Listener, listeners_,
|
| OnVersionAttributesChanged(this, mask, info));
|
| }
|
| +
|
| + FOR_EACH_OBSERVER(
|
| + Listener, listeners_, OnRegistrationFinishedUninstalling(this));
|
| }
|
|
|
| void ServiceWorkerRegistration::OnRestoreFinished(
|
|
|