| Index: gpu/command_buffer/service/in_process_command_buffer.cc | 
| diff --git a/gpu/command_buffer/service/in_process_command_buffer.cc b/gpu/command_buffer/service/in_process_command_buffer.cc | 
| index 9a8b5062957638986926118030b300f1cd04f8ef..969bb86420862cee668d6b12661d3f9bd56df66d 100644 | 
| --- a/gpu/command_buffer/service/in_process_command_buffer.cc | 
| +++ b/gpu/command_buffer/service/in_process_command_buffer.cc | 
| @@ -254,16 +254,21 @@ bool InProcessCommandBuffer::Initialize( | 
| const gles2::ContextCreationAttribHelper& attribs, | 
| InProcessCommandBuffer* share_group, | 
| GpuMemoryBufferManager* gpu_memory_buffer_manager, | 
| -    ImageFactory* image_factory) { | 
| +    ImageFactory* image_factory, | 
| +    scoped_refptr<base::SingleThreadTaskRunner> task_runner) { | 
| DCHECK(!share_group || service_.get() == share_group->service_.get()); | 
|  | 
| if (surface) { | 
| +    // If a surface is provided, we are running in a webview and should not have | 
| +    // a task runner. | 
| +    DCHECK(!task_runner); | 
| + | 
| // GPU thread must be the same as client thread due to GLSurface not being | 
| // thread safe. | 
| sequence_checker_.reset(new base::SequenceChecker); | 
| surface_ = surface; | 
| } else { | 
| -    origin_task_runner_ = base::ThreadTaskRunnerHandle::Get(); | 
| +    origin_task_runner_ = std::move(task_runner); | 
| client_thread_weak_ptr_ = client_thread_weak_ptr_factory_.GetWeakPtr(); | 
| } | 
|  | 
|  |