Index: content/renderer/service_worker/embedded_worker_dispatcher.cc |
diff --git a/content/renderer/service_worker/embedded_worker_dispatcher.cc b/content/renderer/service_worker/embedded_worker_dispatcher.cc |
index 2a9251aec82518e319eac0c856911049f5d12653..ddbb8012b13cd3e0b8140f2aaa0c85951f66bb30 100644 |
--- a/content/renderer/service_worker/embedded_worker_dispatcher.cc |
+++ b/content/renderer/service_worker/embedded_worker_dispatcher.cc |
@@ -77,6 +77,11 @@ void EmbeddedWorkerDispatcher::OnStartWorker( |
void EmbeddedWorkerDispatcher::OnStopWorker(int embedded_worker_id) { |
TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerDispatcher::OnStopWorker"); |
WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id); |
+ // OnStopWorker is possible to be called twice. |
+ if (!wrapper) { |
+ LOG(WARNING) << "Got OnStopWorker for nonexistent worker"; |
+ return; |
+ } |
DCHECK(wrapper); |
nhiroki
2016/10/20 09:22:11
This DCHECK is obvious. Can you remove this?
shimazu
2016/10/21 01:17:02
Done.
|
// This should eventually call WorkerContextDestroyed. (We may need to post |
// a delayed task to forcibly abort the worker context if we find it |