Index: content/renderer/service_worker/embedded_worker_context_client.cc |
diff --git a/content/renderer/service_worker/embedded_worker_context_client.cc b/content/renderer/service_worker/embedded_worker_context_client.cc |
index 1088d2901e7fc93cfb3bb4eb764ae33962d22cfa..fe95816624566364abdce3c83d4274d4ca19f573 100644 |
--- a/content/renderer/service_worker/embedded_worker_context_client.cc |
+++ b/content/renderer/service_worker/embedded_worker_context_client.cc |
@@ -53,6 +53,7 @@ EmbeddedWorkerContextClient::EmbeddedWorkerContextClient( |
sender_(ChildThread::current()->thread_safe_sender()), |
main_thread_proxy_(base::MessageLoopProxy::current()), |
proxy_(NULL) { |
+ g_worker_client_tls.Pointer()->Set(this); |
} |
EmbeddedWorkerContextClient::~EmbeddedWorkerContextClient() { |
@@ -91,7 +92,8 @@ void EmbeddedWorkerContextClient::workerContextStarted( |
} |
void EmbeddedWorkerContextClient::workerContextDestroyed() { |
- DCHECK_NE(0, WorkerTaskRunner::Instance()->CurrentWorkerId()); |
+ // At this point OnWorkerRunLoopStopped is already called, so |
+ // CurrentWorkerId() returns 0 (while we're still on the worker thread). |
proxy_ = NULL; |
main_thread_proxy_->PostTask( |
FROM_HERE, |