summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gpu_process_host.h
diff options
context:
space:
mode:
authoralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-15 21:41:15 +0000
committeralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-15 21:41:15 +0000
commitb2277bea8f33c4c346914cf81c628aac2a15f79b (patch)
treee29c7bc1441947a8347c25e5a9c4cec2edc9d888 /chrome/browser/gpu_process_host.h
parentee5feb9fa3859299c6be22a34f42be3b6e235bfd (diff)
downloadchromium_src-b2277bea8f33c4c346914cf81c628aac2a15f79b.zip
chromium_src-b2277bea8f33c4c346914cf81c628aac2a15f79b.tar.gz
chromium_src-b2277bea8f33c4c346914cf81c628aac2a15f79b.tar.bz2
Fixed a hang in the renderer process. If the renderer process requests for a channel synchronously and the channel could not be established, the renderer thread would keep waiting for the reply to synchronization request.
BUG=61771 TEST=Manually tested pages that require hardware acceleration to make sure they still render correctly Review URL: http://codereview.chromium.org/4884002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66175 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gpu_process_host.h')
-rw-r--r--chrome/browser/gpu_process_host.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/chrome/browser/gpu_process_host.h b/chrome/browser/gpu_process_host.h
index f9aa06f..cc30f0b 100644
--- a/chrome/browser/gpu_process_host.h
+++ b/chrome/browser/gpu_process_host.h
@@ -50,7 +50,8 @@ class GpuProcessHost : public BrowserChildProcessHost {
// Return the stored gpu_info as this class the
// browser's point of contact with the gpu
- GPUInfo gpu_info() const;
+ const GPUInfo& gpu_info() const;
+
private:
// Used to queue pending channel requests.
struct ChannelRequest {
@@ -99,9 +100,13 @@ class GpuProcessHost : public BrowserChildProcessHost {
uint64 surface_id);
#endif
- void ReplyToRenderer(const IPC::ChannelHandle& channel,
- const GPUInfo& gpu_info,
- ResourceMessageFilter* filter);
+ // Sends the response for establish channel request to the renderer.
+ void SendEstablishChannelReply(const IPC::ChannelHandle& channel,
+ const GPUInfo& gpu_info,
+ ResourceMessageFilter* filter);
+ // Sends the response for synchronization request to the renderer.
+ void SendSynchronizationReply(IPC::Message* reply,
+ ResourceMessageFilter* filter);
// ResourceDispatcherHost::Receiver implementation:
virtual URLRequestContext* GetRequestContext(
@@ -109,6 +114,7 @@ class GpuProcessHost : public BrowserChildProcessHost {
const ViewHostMsg_Resource_Request& request_data);
virtual bool CanShutdown();
+ virtual void OnProcessCrashed();
bool initialized_;
bool initialized_successfully_;