Title: [188208] trunk/Source/WebKit2
- Revision
- 188208
- Author
- carlo...@webkit.org
- Date
- 2015-08-10 01:27:52 -0700 (Mon, 10 Aug 2015)
Log Message
[GTK] Crash when the web view is destroyed while the screensaver DBUs proxy is being created
https://bugs.webkit.org/show_bug.cgi?id=147780
Reviewed by Sergio Villar Senin.
We should cancel the screenSaverInhibitCancellable on
dispose. Also use adoptGRef() when creating the cancellable object
to not leak it.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDispose):
(webkitWebViewBaseSendInhibitMessageToScreenSaver):
(webkitWebViewBaseInhibitScreenSaver):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (188207 => 188208)
--- trunk/Source/WebKit2/ChangeLog 2015-08-10 08:24:59 UTC (rev 188207)
+++ trunk/Source/WebKit2/ChangeLog 2015-08-10 08:27:52 UTC (rev 188208)
@@ -1,3 +1,19 @@
+2015-08-10 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [GTK] Crash when the web view is destroyed while the screensaver DBUs proxy is being created
+ https://bugs.webkit.org/show_bug.cgi?id=147780
+
+ Reviewed by Sergio Villar Senin.
+
+ We should cancel the screenSaverInhibitCancellable on
+ dispose. Also use adoptGRef() when creating the cancellable object
+ to not leak it.
+
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseDispose):
+ (webkitWebViewBaseSendInhibitMessageToScreenSaver):
+ (webkitWebViewBaseInhibitScreenSaver):
+
2015-08-09 Chris Dumez <cdu...@apple.com>
Follow-up nit fixes after r187691.
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (188207 => 188208)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp 2015-08-10 08:24:59 UTC (rev 188207)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp 2015-08-10 08:27:52 UTC (rev 188208)
@@ -450,6 +450,7 @@
static void webkitWebViewBaseDispose(GObject* gobject)
{
WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(gobject);
+ g_cancellable_cancel(webView->priv->screenSaverInhibitCancellable.get());
webkitWebViewBaseSetToplevelOnScreenWindow(webView, nullptr);
webView->priv->pageProxy->close();
G_OBJECT_CLASS(webkit_web_view_base_parent_class)->dispose(gobject);
@@ -1134,7 +1135,7 @@
ASSERT(priv->screenSaverProxy);
priv->screenSaverCookie = 0;
if (!priv->screenSaverInhibitCancellable)
- priv->screenSaverInhibitCancellable = g_cancellable_new();
+ priv->screenSaverInhibitCancellable = adoptGRef(g_cancellable_new());
g_dbus_proxy_call(priv->screenSaverProxy.get(), "Inhibit", g_variant_new("(ss)", g_get_prgname(), _("Website running in fullscreen mode")),
G_DBUS_CALL_FLAGS_NONE, -1, priv->screenSaverInhibitCancellable.get(), reinterpret_cast<GAsyncReadyCallback>(screenSaverInhibitedCallback), webViewBase);
}
@@ -1162,7 +1163,7 @@
return;
}
- priv->screenSaverInhibitCancellable = g_cancellable_new();
+ priv->screenSaverInhibitCancellable = adoptGRef(g_cancellable_new());
g_dbus_proxy_new_for_bus(G_BUS_TYPE_SESSION, static_cast<GDBusProxyFlags>(G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS),
nullptr, "org.freedesktop.ScreenSaver", "/ScreenSaver", "org.freedesktop.ScreenSaver", priv->screenSaverInhibitCancellable.get(),
reinterpret_cast<GAsyncReadyCallback>(screenSaverProxyCreatedCallback), webViewBase);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes