summaryrefslogtreecommitdiffstats
path: root/chrome/common/plugin_messages_internal.h
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-16 23:04:23 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-16 23:04:23 +0000
commitd7f4595986302dcf131b943152a843d067e53c1e (patch)
tree7165e6c839aaae33587dab4dbc28df862d1c8428 /chrome/common/plugin_messages_internal.h
parentefb07436b9ba4737247cdf0e8ba0529e27942468 (diff)
downloadchromium_src-d7f4595986302dcf131b943152a843d067e53c1e.zip
chromium_src-d7f4595986302dcf131b943152a843d067e53c1e.tar.gz
chromium_src-d7f4595986302dcf131b943152a843d067e53c1e.tar.bz2
Improve scrolling performance when there are many windowed plugins in a page.
This works by parenting windowed plugins with an HWND that's hosted in the browser process, so that no synchronous cross process messages are used when scrolling. BUG=5428 Review URL: http://codereview.chromium.org/18082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8239 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/plugin_messages_internal.h')
-rw-r--r--chrome/common/plugin_messages_internal.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/chrome/common/plugin_messages_internal.h b/chrome/common/plugin_messages_internal.h
index d78bb5e..1d9380c 100644
--- a/chrome/common/plugin_messages_internal.h
+++ b/chrome/common/plugin_messages_internal.h
@@ -81,6 +81,15 @@ IPC_BEGIN_MESSAGES(PluginProcessHost, 4)
int /* network error */,
std::string /* proxy list */)
+ // Creates a child window of the given parent window on the UI thread.
+ IPC_SYNC_MESSAGE_CONTROL1_1(PluginProcessHostMsg_CreateWindow,
+ HWND /* parent */,
+ HWND /* child */)
+
+ // Destroys the given window on the UI thread.
+ IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_DestroyWindow,
+ HWND /* window */)
+
IPC_END_MESSAGES(PluginProcessHost)
@@ -131,11 +140,9 @@ IPC_BEGIN_MESSAGES(Plugin, 5)
// contains a buffer that the plugin draws into. background_buffer is used
// for transparent windowless plugins, and holds the background of the plugin
// rectangle.
- IPC_MESSAGE_ROUTED6(PluginMsg_UpdateGeometry,
+ IPC_MESSAGE_ROUTED4(PluginMsg_UpdateGeometry,
gfx::Rect /* window_rect */,
gfx::Rect /* clip_rect */,
- std::vector<gfx::Rect> /* cutout_rects */,
- bool /* visible */,
base::SharedMemoryHandle /* windowless_buffer */,
base::SharedMemoryHandle /* background_buffer */)