Index: content/browser/compositor/gpu_process_transport_factory.cc |
diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc |
index 4c0b3630df7eaa3c2565da02b28c9161b2467e5a..bf1af95fb043f29ae89322d9949d107b9c74f470 100644 |
--- a/content/browser/compositor/gpu_process_transport_factory.cc |
+++ b/content/browser/compositor/gpu_process_transport_factory.cc |
@@ -265,6 +265,13 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
if (shared_worker_context_provider_ && |
!shared_worker_context_provider_->BindToCurrentThread()) |
shared_worker_context_provider_ = nullptr; |
+ |
+ if (shared_worker_context_provider_) { |
+ shared_worker_context_provider_->SetupLock(); |
+ // Detach from thread to allow context to be destroyed on a |
+ // different thread without being used. |
+ shared_worker_context_provider_->DetachFromThread(); |
+ } |
} |
} |