Index: content/browser/gpu/gpu_process_host.cc |
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc |
index 9f0d735349431b424ceae1dceb838b18e2f2e8d2..a0ec30750f28972a5e8e67b3a53c72001cd1cd8c 100644 |
--- a/content/browser/gpu/gpu_process_host.cc |
+++ b/content/browser/gpu/gpu_process_host.cc |
@@ -184,8 +184,7 @@ static bool HostIsValid(int host_id, GpuProcessHost* host) { |
return true; |
} |
- host->Send(new GpuMsg_Crash()); |
- g_hosts_by_id.Pointer()->Remove(host_id); |
+ host->ForceShutdown(); |
return false; |
} |
@@ -544,6 +543,11 @@ bool GpuProcessHost::software_rendering() { |
return software_rendering_; |
} |
+void GpuProcessHost::ForceShutdown() { |
+ g_hosts_by_id.Pointer()->Remove(host_id_); |
+ BrowserChildProcessHost::ForceShutdown(); |
+} |
+ |
bool GpuProcessHost::LaunchGpuProcess(const std::string& channel_id) { |
if (!gpu_enabled_ || g_gpu_crash_count >= kGpuMaxCrashCount) { |
SendOutstandingReplies(); |