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 b77ba3b06ec0ab61b2ac67e528e0bd38e8612d57..5a8c2e035fb5bb00fd800f0971d1aae78ad144d7 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -506,8 +506,13 @@ bool ServiceWorkerVersion::FinishRequest(int request_id) { |
} |
void ServiceWorkerVersion::RunAfterStartWorker( |
- const StatusCallback& error_callback, |
- const base::Closure& task) { |
+ const base::Closure& task, |
+ const StatusCallback& error_callback) { |
+ if (running_status() == RUNNING) { |
+ DCHECK(start_callbacks_.empty()); |
+ task.Run(); |
+ return; |
+ } |
StartWorker(base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), |
error_callback, task)); |
} |