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 bf866b991cec0309c5b02e4ab2a8c6b28f3a029d..aa0d43ba87c30022eaca087a0acd8af9abdf7830 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -239,7 +239,6 @@ void ServiceWorkerVersion::DispatchInstallEvent( |
int active_version_id, |
const StatusCallback& callback) { |
DCHECK_EQ(NEW, status()) << status(); |
- SetStatus(INSTALLING); |
if (running_status() != RUNNING) { |
// Schedule calling this method after starting the worker. |
@@ -518,6 +517,8 @@ void ServiceWorkerVersion::DispatchInstallEventAfterStartWorker( |
const StatusCallback& callback) { |
DCHECK_EQ(RUNNING, running_status()) |
<< "Worker stopped too soon after it was started."; |
+ SetStatus(INSTALLING); |
+ |
int request_id = install_callbacks_.Add(new StatusCallback(callback)); |
ServiceWorkerStatusCode status = embedded_worker_->SendMessage( |
ServiceWorkerMsg_InstallEvent(request_id, active_version_id)); |
@@ -531,6 +532,7 @@ void ServiceWorkerVersion::DispatchActivateEventAfterStartWorker( |
const StatusCallback& callback) { |
DCHECK_EQ(RUNNING, running_status()) |
<< "Worker stopped too soon after it was started."; |
+ |
int request_id = activate_callbacks_.Add(new StatusCallback(callback)); |
ServiceWorkerStatusCode status = |
embedded_worker_->SendMessage(ServiceWorkerMsg_ActivateEvent(request_id)); |