diff options
Diffstat (limited to 'content/browser/service_worker/service_worker_version.cc')
-rw-r--r-- | content/browser/service_worker/service_worker_version.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc index 4d73515..2820ec8 100644 --- a/content/browser/service_worker/service_worker_version.cc +++ b/content/browser/service_worker/service_worker_version.cc @@ -572,19 +572,22 @@ void ServiceWorkerVersion::OnGetClientDocuments(int request_id) { void ServiceWorkerVersion::OnActivateEventFinished( int request_id, blink::WebServiceWorkerEventResult result) { - DCHECK_EQ(ACTIVATING, status()) << status(); + DCHECK(ACTIVATING == status() || + REDUNDANT == status()) << status(); StatusCallback* callback = activate_callbacks_.Lookup(request_id); if (!callback) { NOTREACHED() << "Got unexpected message: " << request_id; return; } - ServiceWorkerStatusCode status = SERVICE_WORKER_OK; - if (result == blink::WebServiceWorkerEventResultRejected) - status = SERVICE_WORKER_ERROR_ACTIVATE_WORKER_FAILED; + ServiceWorkerStatusCode rv = SERVICE_WORKER_OK; + if (result == blink::WebServiceWorkerEventResultRejected || + status() != ACTIVATING) { + rv = SERVICE_WORKER_ERROR_ACTIVATE_WORKER_FAILED; + } scoped_refptr<ServiceWorkerVersion> protect(this); - callback->Run(status); + callback->Run(rv); activate_callbacks_.Remove(request_id); } |