summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gpu_process_host.h
diff options
context:
space:
mode:
authorkbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-07 17:57:31 +0000
committerkbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-07 17:57:31 +0000
commit7709e715faacd39b61a68bda1d476219febfc768 (patch)
tree424bc9dfcf3da195c995e2edb011f45ec928eea6 /chrome/browser/gpu_process_host.h
parentcaa62f477849e63abfc28770f2d8173c166fa74b (diff)
downloadchromium_src-7709e715faacd39b61a68bda1d476219febfc768.zip
chromium_src-7709e715faacd39b61a68bda1d476219febfc768.tar.gz
chromium_src-7709e715faacd39b61a68bda1d476219febfc768.tar.bz2
Re-land of http://codereview.chromium.org/6094009 with Mac build fix.
Perform GPU-related initialization in GPU process in response to an IPC from the browser. Because Chromium's child process host detects that the child has crashed by watching for IPC channel errors, it is imperative that the GPU process's IPC channel be set up before it does any work that might cause it to crash. If initialization fails, the GPU process quits its message loop and cooperatively exits. Fixed a bug in the GpuProcessHost where it would not unblock renderers waiting for GPU process initialization if the GPU process exited. BUG=65369 TEST=ran test case from bug on machine with no GPU hardware and verified that it no longer hangs the renderer, and that the GPU process exits Review URL: http://codereview.chromium.org/6124002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70747 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gpu_process_host.h')
-rw-r--r--chrome/browser/gpu_process_host.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/chrome/browser/gpu_process_host.h b/chrome/browser/gpu_process_host.h
index e3bc66a..9a7a90d 100644
--- a/chrome/browser/gpu_process_host.h
+++ b/chrome/browser/gpu_process_host.h
@@ -107,6 +107,11 @@ class GpuProcessHost : public BrowserChildProcessHost,
void SendSynchronizationReply(IPC::Message* reply,
RenderMessageFilter* filter);
+ // Sends outstanding replies to renderer processes. This is only called
+ // in error situations like the GPU process crashing -- but is necessary
+ // to prevent the renderer process from hanging.
+ void SendOutstandingReplies();
+
virtual bool CanShutdown();
virtual void OnChildDied();
virtual void OnProcessCrashed(int exit_code);