| Index: content/browser/gpu/gpu_process_host.h
|
| diff --git a/content/browser/gpu/gpu_process_host.h b/content/browser/gpu/gpu_process_host.h
|
| index abf72801234e19b4480744eec1153d0eab4f6505..0718702bff0bd252e06fbe7c60abad6df4f7ee36 100644
|
| --- a/content/browser/gpu/gpu_process_host.h
|
| +++ b/content/browser/gpu/gpu_process_host.h
|
| @@ -6,14 +6,13 @@
|
| #define CONTENT_BROWSER_GPU_GPU_PROCESS_HOST_H_
|
| #pragma once
|
|
|
| -#include <map>
|
| #include <queue>
|
|
|
| -#include "base/callback_old.h"
|
| -#include "base/memory/linked_ptr.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/threading/non_thread_safe.h"
|
| #include "content/browser/browser_child_process_host.h"
|
| #include "content/common/gpu/gpu_info.h"
|
| +#include "content/browser/gpu/gpu_message_hub.h"
|
| #include "content/common/gpu/gpu_process_launch_causes.h"
|
| #include "ui/gfx/native_widget_types.h"
|
|
|
| @@ -53,33 +52,7 @@ class GpuProcessHost : public BrowserChildProcessHost,
|
| virtual bool OnMessageReceived(const IPC::Message& message);
|
| virtual void OnChannelConnected(int32 peer_pid);
|
|
|
| - typedef Callback3<const IPC::ChannelHandle&,
|
| - base::ProcessHandle,
|
| - const GPUInfo&>::Type
|
| - EstablishChannelCallback;
|
| -
|
| - // Tells the GPU process to create a new channel for communication with a
|
| - // renderer. Once the GPU process responds asynchronously with the IPC handle
|
| - // and GPUInfo, we call the callback.
|
| - void EstablishGpuChannel(
|
| - int renderer_id, EstablishChannelCallback* callback);
|
| -
|
| - typedef Callback0::Type SynchronizeCallback;
|
| -
|
| - // Sends a reply message later when the next GpuHostMsg_SynchronizeReply comes
|
| - // in.
|
| - void Synchronize(SynchronizeCallback* callback);
|
| -
|
| - typedef Callback1<int32>::Type CreateCommandBufferCallback;
|
| -
|
| - // Tells the GPU process to create a new command buffer that draws into the
|
| - // window associated with the given renderer.
|
| - void CreateViewCommandBuffer(
|
| - gfx::PluginWindowHandle compositing_surface,
|
| - int32 render_view_id,
|
| - int32 renderer_id,
|
| - const GPUCreateCommandBufferConfig& init_params,
|
| - CreateCommandBufferCallback* callback);
|
| + GpuMessageHub* GetMessageHub() { return message_hub_.get(); }
|
|
|
| private:
|
| GpuProcessHost(int host_id);
|
| @@ -87,70 +60,28 @@ class GpuProcessHost : public BrowserChildProcessHost,
|
|
|
| bool Init();
|
|
|
| - // Post an IPC message to the UI shim's message handler on the UI thread.
|
| - void RouteOnUIThread(const IPC::Message& message);
|
| -
|
| virtual bool CanShutdown();
|
| virtual void OnProcessLaunched();
|
| virtual void OnChildDied();
|
| virtual void OnProcessCrashed(int exit_code);
|
|
|
| - // Message handlers.
|
| - void OnChannelEstablished(const IPC::ChannelHandle& channel_handle);
|
| - void OnSynchronizeReply();
|
| - void OnCommandBufferCreated(const int32 route_id);
|
| - void OnDestroyCommandBuffer(
|
| - gfx::PluginWindowHandle window, int32 renderer_id, int32 render_view_id);
|
| - void OnGraphicsInfoCollected(const GPUInfo& gpu_info);
|
| -
|
| bool LaunchGpuProcess();
|
|
|
| void SendOutstandingReplies();
|
| - void EstablishChannelError(
|
| - EstablishChannelCallback* callback,
|
| - const IPC::ChannelHandle& channel_handle,
|
| - base::ProcessHandle renderer_process_for_gpu,
|
| - const GPUInfo& gpu_info);
|
| - void CreateCommandBufferError(CreateCommandBufferCallback* callback,
|
| - int32 route_id);
|
| - void SynchronizeError(SynchronizeCallback* callback);
|
|
|
| // The serial number of the GpuProcessHost / GpuProcessHostUIShim pair.
|
| int host_id_;
|
|
|
| - // These are the channel requests that we have already sent to
|
| - // the GPU process, but haven't heard back about yet.
|
| - std::queue<linked_ptr<EstablishChannelCallback> > channel_requests_;
|
| -
|
| - // The pending synchronization requests we need to reply to.
|
| - std::queue<linked_ptr<SynchronizeCallback> > synchronize_requests_;
|
| -
|
| - // The pending create command buffer requests we need to reply to.
|
| - std::queue<linked_ptr<CreateCommandBufferCallback> >
|
| - create_command_buffer_requests_;
|
| -
|
| -#if defined(OS_LINUX)
|
| - typedef std::pair<int32 /* renderer_id */,
|
| - int32 /* render_view_id */> ViewID;
|
| -
|
| - // Encapsulates surfaces that we lock when creating view command buffers.
|
| - // We release this lock once the command buffer (or associated GPU process)
|
| - // is destroyed. This prevents the browser from destroying the surface
|
| - // while the GPU process is drawing to it.
|
| -
|
| - // Multimap is used to simulate reference counting, see comment in
|
| - // GpuProcessHostUIShim::CreateViewCommandBuffer.
|
| - class SurfaceRef;
|
| - typedef std::multimap<ViewID, linked_ptr<SurfaceRef> > SurfaceRefMap;
|
| - SurfaceRefMap surface_refs_;
|
| -#endif
|
| -
|
| // Qeueud messages to send when the process launches.
|
| std::queue<IPC::Message*> queued_messages_;
|
|
|
| // The handle for the GPU process or null if it is not known to be launched.
|
| base::ProcessHandle gpu_process_;
|
|
|
| + // This member handles incoming messages from the GPU process that
|
| + // are either going to the UI thread or are replies to the renderer.
|
| + scoped_ptr<GpuMessageHub> message_hub_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(GpuProcessHost);
|
| };
|
|
|
|
|