Title: [135762] trunk/Source/WebCore
Revision
135762
Author
mrobin...@webkit.org
Date
2012-11-26 14:01:01 -0800 (Mon, 26 Nov 2012)

Log Message

[GTK] GtkSocket is leaked until webview is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=102564

Patch by Arnaud Renevier <a.renev...@sisa.samsung.com> on 2012-11-26
Reviewed by Martin Robinson.

Remove GtkSocket from its parent when pluginview is destroyed. Then,
the GtkSocket and it's possible child widgets are realeased when it is
no more needed.

No new tests, already covered by existing tests.

* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::platformDestroy):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (135761 => 135762)


--- trunk/Source/WebCore/ChangeLog	2012-11-26 22:00:15 UTC (rev 135761)
+++ trunk/Source/WebCore/ChangeLog	2012-11-26 22:01:01 UTC (rev 135762)
@@ -1,3 +1,19 @@
+2012-11-26  Arnaud Renevier  <a.renev...@sisa.samsung.com>
+
+        [GTK] GtkSocket is leaked until webview is destroyed.
+        https://bugs.webkit.org/show_bug.cgi?id=102564
+
+        Reviewed by Martin Robinson.
+
+        Remove GtkSocket from its parent when pluginview is destroyed. Then,
+        the GtkSocket and it's possible child widgets are realeased when it is
+        no more needed.
+
+        No new tests, already covered by existing tests.
+
+        * plugins/gtk/PluginViewGtk.cpp:
+        (WebCore::PluginView::platformDestroy):
+
 2012-11-26  Luke Macpherson   <macpher...@chromium.org>
 
         Make StyleResolver::applyProperty use isInherit in CSSPropertyWebkitMarquee instead of calculating equivalent in-place.

Modified: trunk/Source/WebCore/plugins/gtk/PluginViewGtk.cpp (135761 => 135762)


--- trunk/Source/WebCore/plugins/gtk/PluginViewGtk.cpp	2012-11-26 22:00:15 UTC (rev 135761)
+++ trunk/Source/WebCore/plugins/gtk/PluginViewGtk.cpp	2012-11-26 22:01:01 UTC (rev 135762)
@@ -883,6 +883,13 @@
         XFreePixmap(GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), m_drawable);
         m_drawable = 0;
     }
+
+    GtkWidget* widget = platformWidget();
+    if (widget) {
+        GtkWidget* parent = gtk_widget_get_parent(widget);
+        ASSERT(parent);
+        gtk_container_remove(GTK_CONTAINER(parent), widget);
+    }
 }
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to