Title: [280291] trunk/Source/WebKit
Revision
280291
Author
[email protected]
Date
2021-07-26 00:48:44 -0700 (Mon, 26 Jul 2021)

Log Message

[GTK] MiniBrowser crashes when closed while capturing desktop
https://bugs.webkit.org/show_bug.cgi?id=228232

Patch by Philippe Normand <[email protected]> on 2021-07-26
Reviewed by Adrian Perez de Castro.

Disconnect the WebView from the WebPageProxy just before the final GObject dispose call, in
order to avoid UIClient notifications on the being-disposed WebView.

* UIProcess/API/glib/WebKitUIClient.cpp:
(detachUIClientFromView):
* UIProcess/API/glib/WebKitUIClient.h:
* UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewDispose):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (280290 => 280291)


--- trunk/Source/WebKit/ChangeLog	2021-07-26 07:42:45 UTC (rev 280290)
+++ trunk/Source/WebKit/ChangeLog	2021-07-26 07:48:44 UTC (rev 280291)
@@ -1,3 +1,19 @@
+2021-07-26  Philippe Normand  <[email protected]>
+
+        [GTK] MiniBrowser crashes when closed while capturing desktop
+        https://bugs.webkit.org/show_bug.cgi?id=228232
+
+        Reviewed by Adrian Perez de Castro.
+
+        Disconnect the WebView from the WebPageProxy just before the final GObject dispose call, in
+        order to avoid UIClient notifications on the being-disposed WebView.
+
+        * UIProcess/API/glib/WebKitUIClient.cpp:
+        (detachUIClientFromView):
+        * UIProcess/API/glib/WebKitUIClient.h:
+        * UIProcess/API/glib/WebKitWebView.cpp:
+        (webkitWebViewDispose):
+
 2021-07-25  Wenson Hsieh  <[email protected]>
 
         [iOS] Unified field is unselected after focusing URL bar if text was selected in a fixed position container

Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp (280290 => 280291)


--- trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp	2021-07-26 07:42:45 UTC (rev 280290)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp	2021-07-26 07:48:44 UTC (rev 280291)
@@ -389,3 +389,7 @@
     webkitWebViewGetPage(webView).setUIClient(makeUnique<UIClient>(webView));
 }
 
+void detachUIClientFromView(WebKitWebView* webView)
+{
+    webkitWebViewGetPage(webView).setUIClient(nullptr);
+}

Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.h (280290 => 280291)


--- trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.h	2021-07-26 07:42:45 UTC (rev 280290)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.h	2021-07-26 07:48:44 UTC (rev 280291)
@@ -22,3 +22,4 @@
 #include "WebKitWebView.h"
 
 void attachUIClientToView(WebKitWebView*);
+void detachUIClientFromView(WebKitWebView*);

Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (280290 => 280291)


--- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp	2021-07-26 07:42:45 UTC (rev 280290)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp	2021-07-26 07:48:44 UTC (rev 280291)
@@ -1017,6 +1017,7 @@
 #endif
 
     WebCore::setScreenDPIObserverHandler(nullptr, webView);
+    detachUIClientFromView(webView);
 
     G_OBJECT_CLASS(webkit_web_view_parent_class)->dispose(object);
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to