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 8bea7d38ed6d24fc45cc24fa3cb41febd92f4e94..6ef334bb81e52f7781cd00dbe77d92a3857d94a6 100644 |
--- a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc |
+++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc |
@@ -44,6 +44,7 @@ void EmbeddedWorkerInstanceClientImpl::StopWorkerCompleted() { |
TRACE_EVENT0("ServiceWorker", |
"EmbeddedWorkerInstanceClientImpl::StopWorkerCompleted"); |
stop_callback_.Reset(); |
+ wrapper_ = nullptr; |
} |
void EmbeddedWorkerInstanceClientImpl::StartWorker( |
@@ -73,7 +74,7 @@ void EmbeddedWorkerInstanceClientImpl::StopWorker( |
DCHECK(ChildThreadImpl::current()); |
DCHECK(embedded_worker_id_); |
// StopWorker is possible to be called twice. |
- if (stop_callback_) { |
+ if (stop_callback_ || !wrapper_) { |
LOG(WARNING) << "Got StopWorker for stopping worker"; |
return; |
} |