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 cea1d5570ecab90b2cb0c02feed5cab115e45184..182170d450b90dac4d14bb5eaa6d6f2e7486a319 100644 |
--- a/content/browser/service_worker/service_worker_registration.cc |
+++ b/content/browser/service_worker/service_worker_registration.cc |
@@ -275,19 +275,26 @@ void ServiceWorkerRegistration::OnDeleteFinished( |
void ServiceWorkerRegistration::Clear() { |
context_->storage()->NotifyDoneUninstallingRegistration(this); |
- if (installing_version()) { |
- installing_version()->Doom(); |
- UnsetVersion(installing_version()); |
+ ChangedVersionAttributesMask mask; |
+ if (installing_version_) { |
+ installing_version_->Doom(); |
+ installing_version_ = NULL; |
+ mask.add(ChangedVersionAttributesMask::INSTALLING_VERSION); |
} |
- |
- if (waiting_version()) { |
- waiting_version()->Doom(); |
- UnsetVersion(waiting_version()); |
+ if (waiting_version_) { |
+ waiting_version_->Doom(); |
+ waiting_version_ = NULL; |
+ mask.add(ChangedVersionAttributesMask::WAITING_VERSION); |
} |
- |
- if (active_version()) { |
- active_version()->Doom(); |
- UnsetVersion(active_version()); |
+ if (active_version_) { |
+ active_version_->Doom(); |
falken
2014/08/19 01:00:21
I think you might have to call
active_version_->
nhiroki
2014/08/19 01:04:31
I think we need to call "active_version_->RemoveLi
michaeln
2014/08/19 02:36:11
thnx
I think a call to active_version_->RemoveLis
|
+ active_version_ = NULL; |
+ mask.add(ChangedVersionAttributesMask::ACTIVE_VERSION); |
+ } |
+ if (mask.changed()) { |
+ ServiceWorkerRegistrationInfo info = GetInfo(); |
+ FOR_EACH_OBSERVER(Listener, listeners_, |
+ OnVersionAttributesChanged(this, mask, info)); |
} |
} |