diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-16 23:04:23 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-16 23:04:23 +0000 |
commit | d7f4595986302dcf131b943152a843d067e53c1e (patch) | |
tree | 7165e6c839aaae33587dab4dbc28df862d1c8428 /chrome/common/plugin_messages_internal.h | |
parent | efb07436b9ba4737247cdf0e8ba0529e27942468 (diff) | |
download | chromium_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.h | 13 |
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 */) |