Index: content/browser/service_worker/service_worker_storage.cc |
diff --git a/content/browser/service_worker/service_worker_storage.cc b/content/browser/service_worker/service_worker_storage.cc |
index 62d198bd5aa6e6678b0a66b786222d9d77415c29..b731c69440723a49336802db6c1af69a6d471381 100644 |
--- a/content/browser/service_worker/service_worker_storage.cc |
+++ b/content/browser/service_worker/service_worker_storage.cc |
@@ -579,12 +579,20 @@ void ServiceWorkerStorage::DidGetAllRegistrations( |
info.pattern = it->scope; |
info.script_url = it->script; |
info.registration_id = it->registration_id; |
- info.active_version.is_null = false; |
- if (it->is_active) |
- info.active_version.status = ServiceWorkerVersion::ACTIVE; |
- else |
- info.active_version.status = ServiceWorkerVersion::INSTALLED; |
- info.active_version.version_id = it->version_id; |
+ if (ServiceWorkerVersion* version = |
+ context_->GetLiveVersion(it->version_id)) { |
+ if (it->is_active) |
+ info.active_version = version->GetInfo(); |
+ else |
+ info.pending_version = version->GetInfo(); |
+ } else { |
+ info.active_version.is_null = false; |
+ if (it->is_active) |
+ info.active_version.status = ServiceWorkerVersion::ACTIVE; |
+ else |
+ info.active_version.status = ServiceWorkerVersion::INSTALLED; |
+ info.active_version.version_id = it->version_id; |
+ } |
infos.push_back(info); |
} |