diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-21 21:48:36 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-21 21:48:36 +0000 |
commit | 875d489e8aadd251c638c1bad6bb7ca967605f98 (patch) | |
tree | e1be54c561d33b240f6c88b042c9b2df732ac5c6 /chrome/common/plugin_messages_internal.h | |
parent | e3db4fabfc7aabca3cd1998e05d2a769fbd0c5b6 (diff) | |
download | chromium_src-875d489e8aadd251c638c1bad6bb7ca967605f98.zip chromium_src-875d489e8aadd251c638c1bad6bb7ca967605f98.tar.gz chromium_src-875d489e8aadd251c638c1bad6bb7ca967605f98.tar.bz2 |
Fix hang seen in plugin process because plugin creation ended up having to wait on UI thread. Instead of using sync messages, the plugin hwnd is initially parented to the RenderWidgetHost's HWND. It's then lazily reparented to an intermediate HWND on the UI thread when it comes time to move it.
BUG=10711
TEST=added regression tests, but testers please confirm plugins on top video sites are placed correctly.
Review URL: http://codereview.chromium.org/67285
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14137 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/plugin_messages_internal.h')
-rw-r--r-- | chrome/common/plugin_messages_internal.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/chrome/common/plugin_messages_internal.h b/chrome/common/plugin_messages_internal.h index 11a0365..54839fb 100644 --- a/chrome/common/plugin_messages_internal.h +++ b/chrome/common/plugin_messages_internal.h @@ -78,9 +78,10 @@ IPC_BEGIN_MESSAGES(PluginProcessHost) HWND /* parent */, HWND /* child */) - // Destroys the given window on the UI thread. - IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_DestroyWindow, - HWND /* window */) + // Destroys the given window's parent on the UI thread. + IPC_MESSAGE_CONTROL2(PluginProcessHostMsg_PluginWindowDestroyed, + HWND /* window */, + HWND /* parent */) IPC_MESSAGE_ROUTED3(PluginProcessHostMsg_DownloadUrl, std::string /* URL */, |