Title: [165881] releases/WebKitGTK/webkit-2.2/Source/WebKit2
Revision
165881
Author
carlo...@webkit.org
Date
2014-03-19 01:53:48 -0700 (Wed, 19 Mar 2014)

Log Message

Merge r165182 - [GTK] Close the page when the view is disposed instead of when finalized
https://bugs.webkit.org/show_bug.cgi?id=129783

Reviewed by Sergio Villar Senin.

Source/WebKit2:

When a GtkWidget is destroyed, the GObject is disposed, but not
finalized if it has additional references. When the destroyed
widget is leaked by the application, we leak the page proxy and
what is more important the web process in multi-process mode.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDispose): Close the WebPageProxy.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.2/Source/WebKit2/ChangeLog (165880 => 165881)


--- releases/WebKitGTK/webkit-2.2/Source/WebKit2/ChangeLog	2014-03-19 08:49:55 UTC (rev 165880)
+++ releases/WebKitGTK/webkit-2.2/Source/WebKit2/ChangeLog	2014-03-19 08:53:48 UTC (rev 165881)
@@ -1,3 +1,18 @@
+2014-03-06  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GTK] Close the page when the view is disposed instead of when finalized
+        https://bugs.webkit.org/show_bug.cgi?id=129783
+
+        Reviewed by Sergio Villar Senin.
+
+        When a GtkWidget is destroyed, the GObject is disposed, but not
+        finalized if it has additional references. When the destroyed
+        widget is leaked by the application, we leak the page proxy and
+        what is more important the web process in multi-process mode.
+
+        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+        (webkitWebViewBaseDispose): Close the WebPageProxy.
+
 2014-02-27  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GTK][WK2] Blocks when fetching plugins information

Modified: releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (165880 => 165881)


--- releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2014-03-19 08:49:55 UTC (rev 165880)
+++ releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2014-03-19 08:53:48 UTC (rev 165881)
@@ -85,11 +85,6 @@
 #endif
 
 struct _WebKitWebViewBasePrivate {
-    ~_WebKitWebViewBasePrivate()
-    {
-        pageProxy->close();
-    }
-
     WebKitWebViewChildrenMap children;
     OwnPtr<PageClientImpl> pageClient;
     RefPtr<WebPageProxy> pageProxy;
@@ -355,7 +350,9 @@
 
 static void webkitWebViewBaseDispose(GObject* gobject)
 {
-    webkitWebViewBaseSetToplevelOnScreenWindow(WEBKIT_WEB_VIEW_BASE(gobject), 0);
+    WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(gobject);
+    webkitWebViewBaseSetToplevelOnScreenWindow(webView, nullptr);
+    webView->priv->pageProxy->close();
     G_OBJECT_CLASS(webkit_web_view_base_parent_class)->dispose(gobject);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to