Index: content/browser/service_worker/service_worker_version.cc |
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc |
index 494b5ba090626fdd06c7c671f2dba1c9a7ae5f38..4d7351525294e03783d7ee6a1d8d5cf067a59b54 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -217,7 +217,13 @@ void ServiceWorkerVersion::DeferScheduledUpdate() { |
void ServiceWorkerVersion::StartUpdate() { |
update_timer_.Stop(); |
- // TODO(michaeln): write me |
+ if (!context_) |
+ return; |
+ ServiceWorkerRegistration* registration = |
+ context_->GetLiveRegistration(registration_id_); |
+ if (!registration) |
+ return; |
+ context_->UpdateServiceWorker(registration); |
} |
void ServiceWorkerVersion::SendMessage( |
@@ -389,6 +395,7 @@ void ServiceWorkerVersion::RemoveControllee( |
RemoveProcessFromWorker(provider_host->process_id()); |
if (HasControllee()) |
return; |
+ FOR_EACH_OBSERVER(Listener, listeners_, OnNoControllees(this)); |
if (is_doomed_) { |
DoomInternal(); |
return; |