| Index: content/browser/android/in_process/synchronous_compositor_factory_impl.cc
|
| diff --git a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc
|
| index 3a8fa4d6a247134608556f4e74b2d9b5e3061185..4a6de4d139b2c9a700f045bf247215c6bfc9a699 100644
|
| --- a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc
|
| +++ b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc
|
| @@ -177,6 +177,14 @@ SynchronousCompositorFactoryImpl::CreateOutputSurface(
|
| CreateContextProviderForCompositor(surface_id, RENDER_COMPOSITOR_CONTEXT);
|
| scoped_refptr<cc::ContextProvider> worker_context =
|
| CreateContextProviderForCompositor(0, RENDER_WORKER_CONTEXT);
|
| + if (!worker_context->BindToCurrentThread())
|
| + worker_context = nullptr;
|
| + if (worker_context) {
|
| + worker_context->SetupLock();
|
| + // Detach from thread to allow context to be destroyed on a different
|
| + // thread without being used.
|
| + worker_context->DetachFromThread();
|
| + }
|
|
|
| return make_scoped_ptr(new SynchronousCompositorOutputSurface(
|
| onscreen_context, worker_context, routing_id, frame_swap_message_queue));
|
|
|