Index: content/renderer/service_worker/embedded_worker_instance_client_impl.cc |
diff --git a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc |
index 4b399b8819280218acbf37621858e962e0783aed..f5926ad01713d9aa70d5c97dc45620eab4288167 100644 |
--- a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc |
+++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc |
@@ -69,6 +69,11 @@ void EmbeddedWorkerInstanceClientImpl::StopWorker( |
const StopWorkerCallback& callback) { |
DCHECK(ChildThreadImpl::current()); |
DCHECK(embedded_worker_id_); |
+ // StopWorker is possible to be called twice. |
+ if (stop_callback_) { |
+ LOG(WARNING) << "Got StopWorker for stopping worker"; |
+ return; |
+ } |
DCHECK(!stop_callback_); |
nhiroki
2016/10/20 09:22:11
ditto.
shimazu
2016/10/21 01:17:03
Done.
|
TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstanceClientImpl::StopWorker"); |
stop_callback_ = std::move(callback); |