From 875d489e8aadd251c638c1bad6bb7ca967605f98 Mon Sep 17 00:00:00 2001 From: "jam@chromium.org" Date: Tue, 21 Apr 2009 21:48:36 +0000 Subject: 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 --- chrome/plugin/webplugin_proxy.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'chrome/plugin/webplugin_proxy.h') diff --git a/chrome/plugin/webplugin_proxy.h b/chrome/plugin/webplugin_proxy.h index 8c4629d..ea2c124 100644 --- a/chrome/plugin/webplugin_proxy.h +++ b/chrome/plugin/webplugin_proxy.h @@ -34,7 +34,8 @@ class WebPluginProxy : public WebPlugin { ~WebPluginProxy(); // WebPlugin overrides - bool SetWindow(gfx::NativeView window); + void SetWindow(gfx::NativeView window); + void WillDestroyWindow(gfx::NativeView window); #if defined(OS_WIN) void SetWindowlessPumpEvent(HANDLE pump_messages_event); void SetModalDialogEvent(HANDLE modal_dialog_event); @@ -136,7 +137,6 @@ class WebPluginProxy : public WebPlugin { bool waiting_for_paint_; uint32 cp_browsing_context_; scoped_ptr modal_dialog_event_; - HWND parent_window_; // Variables used for desynchronized windowless plugin painting. See note in // webplugin_delegate_proxy.h for how this works. -- cgit v1.1