diff options
author | amarinichev@chromium.org <amarinichev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 00:13:12 +0000 |
---|---|---|
committer | amarinichev@chromium.org <amarinichev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 00:13:12 +0000 |
commit | 8dc7fbda836a7a7e709085328787b3f71545c334 (patch) | |
tree | 225139c36220e1fbef3d8ae19cd08133da90bf4a /content/common | |
parent | 4284f83a3b146164dc35b30b05bcb66b4c8b5490 (diff) | |
download | chromium_src-8dc7fbda836a7a7e709085328787b3f71545c334.zip chromium_src-8dc7fbda836a7a7e709085328787b3f71545c334.tar.gz chromium_src-8dc7fbda836a7a7e709085328787b3f71545c334.tar.bz2 |
Added GpuMsg_VisibilityChanged message.
The message is sent from the UI thread of the browser process to the GPU process when a tab changes visibility. It will be a hint for the GPU process to hold on to visible tabs.
BUG=61038
TEST=breakpoint
Review URL: http://codereview.chromium.org/6840034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81679 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common')
-rw-r--r-- | content/common/gpu/gpu_channel_manager.cc | 8 | ||||
-rw-r--r-- | content/common/gpu/gpu_channel_manager.h | 2 | ||||
-rw-r--r-- | content/common/gpu_messages.h | 5 | ||||
-rw-r--r-- | content/common/gpu_process_launch_causes.h | 1 |
4 files changed, 15 insertions, 1 deletions
diff --git a/content/common/gpu/gpu_channel_manager.cc b/content/common/gpu/gpu_channel_manager.cc index e7721a4..f6d39a9 100644 --- a/content/common/gpu/gpu_channel_manager.cc +++ b/content/common/gpu/gpu_channel_manager.cc @@ -49,8 +49,9 @@ bool GpuChannelManager::OnMessageReceived(const IPC::Message& msg) { IPC_MESSAGE_HANDLER(GpuMsg_EstablishChannel, OnEstablishChannel) IPC_MESSAGE_HANDLER(GpuMsg_CloseChannel, OnCloseChannel) IPC_MESSAGE_HANDLER(GpuMsg_CreateViewCommandBuffer, - OnCreateViewCommandBuffer); + OnCreateViewCommandBuffer) IPC_MESSAGE_HANDLER(GpuMsg_Synchronize, OnSynchronize) + IPC_MESSAGE_HANDLER(GpuMsg_VisibilityChanged, OnVisibilityChanged) #if defined(OS_MACOSX) IPC_MESSAGE_HANDLER(GpuMsg_AcceleratedSurfaceBuffersSwappedACK, OnAcceleratedSurfaceBuffersSwappedACK) @@ -112,6 +113,11 @@ void GpuChannelManager::OnSynchronize() { Send(new GpuHostMsg_SynchronizeReply()); } +void GpuChannelManager::OnVisibilityChanged( + int32 render_view_id, int32 renderer_id, bool visible) { + // TODO(amarinichev): this will be used for context eviction +} + void GpuChannelManager::OnCreateViewCommandBuffer( gfx::PluginWindowHandle window, int32 render_view_id, diff --git a/content/common/gpu/gpu_channel_manager.h b/content/common/gpu/gpu_channel_manager.h index a89d9a4..d42b6d4 100644 --- a/content/common/gpu/gpu_channel_manager.h +++ b/content/common/gpu/gpu_channel_manager.h @@ -63,6 +63,8 @@ class GpuChannelManager : public IPC::Channel::Listener, // Message handlers. void OnEstablishChannel(int renderer_id); void OnCloseChannel(const IPC::ChannelHandle& channel_handle); + void OnVisibilityChanged( + int32 render_view_id, int32 renderer_id, bool visible); void OnSynchronize(); void OnCreateViewCommandBuffer( gfx::PluginWindowHandle window, diff --git a/content/common/gpu_messages.h b/content/common/gpu_messages.h index 9ea9beb..88fab8a 100644 --- a/content/common/gpu_messages.h +++ b/content/common/gpu_messages.h @@ -144,6 +144,11 @@ IPC_MESSAGE_CONTROL1(GpuMsg_CloseChannel, // asynchronously.) Results in a GpuHostMsg_SynchronizeReply. IPC_MESSAGE_CONTROL0(GpuMsg_Synchronize) +IPC_MESSAGE_CONTROL3(GpuMsg_VisibilityChanged, + int32, /*render_view_id */ + int32, /* renderer_id */ + bool /* is_visible */) + // Tells the GPU process to create a new command buffer that renders directly // to a native view. A corresponding GpuCommandBufferStub is created. IPC_MESSAGE_CONTROL4(GpuMsg_CreateViewCommandBuffer, diff --git a/content/common/gpu_process_launch_causes.h b/content/common/gpu_process_launch_causes.h index c84f9fe9..db4f62a 100644 --- a/content/common/gpu_process_launch_causes.h +++ b/content/common/gpu_process_launch_causes.h @@ -15,6 +15,7 @@ enum CauseForGpuLaunch { CAUSE_FOR_GPU_LAUNCH_RENDERWIDGETFULLSCREENPEPPER_CREATECONTEXT, CAUSE_FOR_GPU_LAUNCH_RENDERWIDGETHOSTVIEWMAC_DEALLOCFAKEPLUGINWINDOWHANDLE, CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE, + CAUSE_FOR_GPU_LAUNCH_NO_LAUNCH, CAUSE_FOR_GPU_LAUNCH_MAX_ENUM }; |