| Index: chrome/browser/gpu_process_host.cc
|
| diff --git a/chrome/browser/gpu_process_host.cc b/chrome/browser/gpu_process_host.cc
|
| index 332d23aee31177ec1b1e208fe70a563523a8c6d1..2c5e13fe2184b6e2d636b1f5ec0a42448d8edf8c 100644
|
| --- a/chrome/browser/gpu_process_host.cc
|
| +++ b/chrome/browser/gpu_process_host.cc
|
| @@ -14,8 +14,6 @@
|
| #include "chrome/browser/gpu_blacklist.h"
|
| #include "chrome/browser/gpu_process_host_ui_shim.h"
|
| #include "chrome/browser/renderer_host/render_message_filter.h"
|
| -#include "chrome/browser/renderer_host/render_view_host.h"
|
| -#include "chrome/browser/renderer_host/render_widget_host_view.h"
|
| #include "chrome/browser/tab_contents/render_view_host_delegate_helper.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/gpu_feature_flags.h"
|
| @@ -28,15 +26,6 @@
|
| #include "ipc/ipc_switches.h"
|
| #include "media/base/media_switches.h"
|
|
|
| -#if defined(OS_LINUX)
|
| -// These two #includes need to come after render_messages.h.
|
| -#include <gdk/gdkwindow.h> // NOLINT
|
| -#include <gdk/gdkx.h> // NOLINT
|
| -#include "gfx/gtk_native_view_id_manager.h"
|
| -#include "gfx/size.h"
|
| -#include "ui/base/x/x11_util.h"
|
| -#endif // defined(OS_LINUX)
|
| -
|
| namespace {
|
|
|
| enum GPUBlacklistTestResult {
|
| @@ -225,19 +214,6 @@ bool GpuProcessHost::OnControlMessageReceived(const IPC::Message& message) {
|
| IPC_BEGIN_MESSAGE_MAP(GpuProcessHost, message)
|
| IPC_MESSAGE_HANDLER(GpuHostMsg_ChannelEstablished, OnChannelEstablished)
|
| IPC_MESSAGE_HANDLER(GpuHostMsg_SynchronizeReply, OnSynchronizeReply)
|
| -#if defined(OS_LINUX)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuHostMsg_GetViewXID, OnGetViewXID)
|
| - IPC_MESSAGE_HANDLER(GpuHostMsg_ReleaseXID, OnReleaseXID)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuHostMsg_ResizeXID, OnResizeXID)
|
| -#elif defined(OS_MACOSX)
|
| - IPC_MESSAGE_HANDLER(GpuHostMsg_AcceleratedSurfaceSetIOSurface,
|
| - OnAcceleratedSurfaceSetIOSurface)
|
| - IPC_MESSAGE_HANDLER(GpuHostMsg_AcceleratedSurfaceBuffersSwapped,
|
| - OnAcceleratedSurfaceBuffersSwapped)
|
| -#elif defined(OS_WIN)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuHostMsg_GetCompositorHostWindow,
|
| - OnGetCompositorHostWindow)
|
| -#endif
|
| // If the IO thread does not handle the message then automatically route it
|
| // to the UI thread. The UI thread will report an error if it does not
|
| // handle it.
|
| @@ -285,232 +261,6 @@ void GpuProcessHost::OnSynchronizeReply() {
|
| }
|
| }
|
|
|
| -#if defined(OS_LINUX)
|
| -
|
| -namespace {
|
| -
|
| -void SendDelayedReply(IPC::Message* reply_msg) {
|
| - GpuProcessHost::Get()->Send(reply_msg);
|
| -}
|
| -
|
| -void GetViewXIDDispatcher(gfx::NativeViewId id, IPC::Message* reply_msg) {
|
| - XID xid;
|
| -
|
| - GtkNativeViewManager* manager = GtkNativeViewManager::GetInstance();
|
| - if (!manager->GetPermanentXIDForId(&xid, id)) {
|
| - DLOG(ERROR) << "Can't find XID for view id " << id;
|
| - xid = 0;
|
| - }
|
| -
|
| - GpuHostMsg_GetViewXID::WriteReplyParams(reply_msg, xid);
|
| -
|
| - // Have to reply from IO thread.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - NewRunnableFunction(&SendDelayedReply, reply_msg));
|
| -}
|
| -
|
| -void ReleaseXIDDispatcher(unsigned long xid) {
|
| - GtkNativeViewManager* manager = GtkNativeViewManager::GetInstance();
|
| - manager->ReleasePermanentXID(xid);
|
| -}
|
| -
|
| -void ResizeXIDDispatcher(unsigned long xid, gfx::Size size,
|
| - IPC::Message *reply_msg) {
|
| - GdkWindow* window = reinterpret_cast<GdkWindow*>(gdk_xid_table_lookup(xid));
|
| - if (window) {
|
| - Display* display = GDK_WINDOW_XDISPLAY(window);
|
| - gdk_window_resize(window, size.width(), size.height());
|
| - XSync(display, False);
|
| - }
|
| -
|
| - GpuHostMsg_ResizeXID::WriteReplyParams(reply_msg, (window != NULL));
|
| -
|
| - // Have to reply from IO thread.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - NewRunnableFunction(&SendDelayedReply, reply_msg));
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -void GpuProcessHost::OnGetViewXID(gfx::NativeViewId id,
|
| - IPC::Message *reply_msg) {
|
| - // Have to request a permanent XID from UI thread.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - NewRunnableFunction(&GetViewXIDDispatcher, id, reply_msg));
|
| -}
|
| -
|
| -void GpuProcessHost::OnReleaseXID(unsigned long xid) {
|
| - // Have to release a permanent XID from UI thread.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - NewRunnableFunction(&ReleaseXIDDispatcher, xid));
|
| -}
|
| -
|
| -void GpuProcessHost::OnResizeXID(unsigned long xid, gfx::Size size,
|
| - IPC::Message *reply_msg) {
|
| - // Have to resize the window from UI thread.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - NewRunnableFunction(&ResizeXIDDispatcher, xid, size, reply_msg));
|
| -}
|
| -
|
| -#elif defined(OS_MACOSX)
|
| -
|
| -namespace {
|
| -
|
| -class SetIOSurfaceDispatcher : public Task {
|
| - public:
|
| - SetIOSurfaceDispatcher(
|
| - const GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params& params)
|
| - : params_(params) {
|
| - }
|
| -
|
| - void Run() {
|
| - RenderViewHost* host = RenderViewHost::FromID(params_.renderer_id,
|
| - params_.render_view_id);
|
| - if (!host)
|
| - return;
|
| - RenderWidgetHostView* view = host->view();
|
| - if (!view)
|
| - return;
|
| - view->AcceleratedSurfaceSetIOSurface(params_.window,
|
| - params_.width,
|
| - params_.height,
|
| - params_.identifier);
|
| - }
|
| -
|
| - private:
|
| - GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params params_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SetIOSurfaceDispatcher);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -void GpuProcessHost::OnAcceleratedSurfaceSetIOSurface(
|
| - const GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params& params) {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - new SetIOSurfaceDispatcher(params));
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -class BuffersSwappedDispatcher : public Task {
|
| - public:
|
| - BuffersSwappedDispatcher(
|
| - int renderer_id,
|
| - int render_view_id,
|
| - gfx::PluginWindowHandle window,
|
| - uint64 surface_id,
|
| - int32 route_id,
|
| - uint64 swap_buffers_count)
|
| - : renderer_id_(renderer_id),
|
| - render_view_id_(render_view_id),
|
| - window_(window),
|
| - surface_id_(surface_id),
|
| - route_id_(route_id),
|
| - swap_buffers_count_(swap_buffers_count) {
|
| - }
|
| -
|
| - void Run() {
|
| - RenderViewHost* host = RenderViewHost::FromID(renderer_id_,
|
| - render_view_id_);
|
| - if (!host)
|
| - return;
|
| - RenderWidgetHostView* view = host->view();
|
| - if (!view)
|
| - return;
|
| - view->AcceleratedSurfaceBuffersSwapped(
|
| - // Parameters needed to swap the IOSurface.
|
| - window_,
|
| - surface_id_,
|
| - // Parameters needed to formulate an acknowledgment.
|
| - renderer_id_,
|
| - route_id_,
|
| - swap_buffers_count_);
|
| - }
|
| -
|
| - private:
|
| - int renderer_id_;
|
| - int render_view_id_;
|
| - gfx::PluginWindowHandle window_;
|
| - uint64 surface_id_;
|
| - int32 route_id_;
|
| - uint64 swap_buffers_count_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BuffersSwappedDispatcher);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -void GpuProcessHost::OnAcceleratedSurfaceBuffersSwapped(
|
| - const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params) {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - new BuffersSwappedDispatcher(
|
| - // These are the parameters needed to look up the IOSurface
|
| - // on this side.
|
| - params.renderer_id,
|
| - params.render_view_id,
|
| - params.window,
|
| - params.surface_id,
|
| - // These are additional parameters needed to formulate an
|
| - // acknowledgment.
|
| - params.route_id,
|
| - params.swap_buffers_count));
|
| -}
|
| -
|
| -#elif defined(OS_WIN)
|
| -
|
| -namespace {
|
| -
|
| -void SendDelayedReply(IPC::Message* reply_msg) {
|
| - GpuProcessHost::Get()->Send(reply_msg);
|
| -}
|
| -
|
| -void GetCompositorHostWindowDispatcher(
|
| - int renderer_id,
|
| - int render_view_id,
|
| - IPC::Message* reply_msg) {
|
| - RenderViewHost* host = RenderViewHost::FromID(renderer_id,
|
| - render_view_id);
|
| - if (!host) {
|
| - GpuHostMsg_GetCompositorHostWindow::WriteReplyParams(reply_msg,
|
| - gfx::kNullPluginWindow);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - NewRunnableFunction(&SendDelayedReply, reply_msg));
|
| - return;
|
| - }
|
| -
|
| - RenderWidgetHostView* view = host->view();
|
| - gfx::PluginWindowHandle id = view->GetCompositorHostWindow();
|
| -
|
| -
|
| - GpuHostMsg_GetCompositorHostWindow::WriteReplyParams(reply_msg, id);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - NewRunnableFunction(&SendDelayedReply, reply_msg));
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -void GpuProcessHost::OnGetCompositorHostWindow(
|
| - int renderer_id,
|
| - int render_view_id,
|
| - IPC::Message* reply_message) {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - NewRunnableFunction(&GetCompositorHostWindowDispatcher,
|
| - renderer_id, render_view_id, reply_message));
|
| -}
|
| -
|
| -#endif
|
| -
|
| void GpuProcessHost::SendEstablishChannelReply(
|
| const IPC::ChannelHandle& channel,
|
| const GPUInfo& gpu_info,
|
|
|