summaryrefslogtreecommitdiffstats
path: root/webkit/tools/test_shell/webview_host_gtk.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-28 17:42:56 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-28 17:42:56 +0000
commitbb64e11d986551e16b51f67034335ef4cc5c2a8c (patch)
tree7c0ece07e4712baa5f5ae86d9963087a68fc73f3 /webkit/tools/test_shell/webview_host_gtk.cc
parent76a51ac85ab739064c2c6b224d489cfa1767ae8a (diff)
downloadchromium_src-bb64e11d986551e16b51f67034335ef4cc5c2a8c.zip
chromium_src-bb64e11d986551e16b51f67034335ef4cc5c2a8c.tar.gz
chromium_src-bb64e11d986551e16b51f67034335ef4cc5c2a8c.tar.bz2
linux: cleanup browser-side GtkSockets when plugins are destroyed
WillDestroyWindow is already plumbed over to the browser process in the multiproc case; we want to plumb it to our RenderView delegate so we can do similar cleanup in test_shell. BUG=15423 Review URL: http://codereview.chromium.org/147251 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19475 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools/test_shell/webview_host_gtk.cc')
-rw-r--r--webkit/tools/test_shell/webview_host_gtk.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/webkit/tools/test_shell/webview_host_gtk.cc b/webkit/tools/test_shell/webview_host_gtk.cc
index cd491af..e089052 100644
--- a/webkit/tools/test_shell/webview_host_gtk.cc
+++ b/webkit/tools/test_shell/webview_host_gtk.cc
@@ -58,11 +58,16 @@ GtkWidget* WebViewHost::MapIDToWidget(GdkNativeWindow id) {
return NULL;
}
-gboolean WebViewHost::OnPlugRemoved(GtkSocket* socket) {
- // Remove the socket's id from our list of widgets.
- GdkNativeWindow id = gtk_socket_get_id(socket);
+void WebViewHost::OnPluginWindowDestroyed(GdkNativeWindow id) {
+ GtkWidget* plugin_container = MapIDToWidget(id);
+ if (!plugin_container)
+ return;
+
native_window_to_widget_map_.erase(id);
+ gtk_widget_destroy(plugin_container);
+}
- return FALSE; // Destroy our widget.
+gboolean WebViewHost::OnPlugRemoved(GtkSocket* socket) {
+ return TRUE; // Don't destroy our widget; we manage it ourselves.
}