| Index: content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| diff --git a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| index 718c009e44346e6bd7a0928aa4678b5ceca77aef..fcd1a8d4e951afd81269df3b8e8d6a9b11958c06 100644
|
| --- a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| +++ b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| @@ -257,6 +257,11 @@ BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandle(
|
| "BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandle");
|
| base::ThreadRestrictions::ScopedAllowWait allow_wait;
|
| request.event.Wait();
|
| + if (!request.result) {
|
| + GpuProcessHost* host = GpuProcessHost::FromID(gpu_host_id_);
|
| + if (host)
|
| + host->ForceShutdown();
|
| + }
|
| return std::move(request.result);
|
| }
|
|
|
| @@ -422,6 +427,11 @@ BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForSurface(
|
| "BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForSurface");
|
| base::ThreadRestrictions::ScopedAllowWait allow_wait;
|
| request.event.Wait();
|
| + if (!request.result) {
|
| + GpuProcessHost* host = GpuProcessHost::FromID(gpu_host_id_);
|
| + if (host)
|
| + host->ForceShutdown();
|
| + }
|
| return std::move(request.result);
|
| }
|
|
|
|
|