| Index: content/common/gpu/client/gpu_channel_host.cc
|
| diff --git a/content/common/gpu/client/gpu_channel_host.cc b/content/common/gpu/client/gpu_channel_host.cc
|
| index afc0b5993c7e548060235b95bf1b865bf92bbe66..f503051fb162ee42d3f8ab442de42edc47265fdb 100644
|
| --- a/content/common/gpu/client/gpu_channel_host.cc
|
| +++ b/content/common/gpu/client/gpu_channel_host.cc
|
| @@ -144,6 +144,19 @@ CommandBufferProxyImpl* GpuChannelHost::CreateViewCommandBuffer(
|
| int32 route_id = GenerateRouteID();
|
| if (!factory_->CreateViewCommandBuffer(surface_id, init_params, route_id)) {
|
| LOG(ERROR) << "GpuChannelHost::CreateViewCommandBuffer failed.";
|
| +
|
| + // The most likely reason CreateViewCommandBuffer will fail is
|
| + // that the GPU process crashed. In this case the GPU channel
|
| + // needs to be considered lost. The caller will then set up a new
|
| + // connection, and the GPU channel and any view command buffers
|
| + // will all be associated with the same GPU process.
|
| + DCHECK(MessageLoopProxy::current().get());
|
| +
|
| + scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy();
|
| + io_loop->PostTask(FROM_HERE,
|
| + base::Bind(&GpuChannelHost::MessageFilter::OnChannelError,
|
| + channel_filter_.get()));
|
| +
|
| return NULL;
|
| }
|
|
|
|
|