diff options
author | kbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-07 17:57:31 +0000 |
---|---|---|
committer | kbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-07 17:57:31 +0000 |
commit | 7709e715faacd39b61a68bda1d476219febfc768 (patch) | |
tree | 424bc9dfcf3da195c995e2edb011f45ec928eea6 /chrome/browser/gpu_process_host.h | |
parent | caa62f477849e63abfc28770f2d8173c166fa74b (diff) | |
download | chromium_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.h | 5 |
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); |