[epiphany/gnome-3-28] web-view: remove the previous extension weak pointer before setting a new one



commit 1a928aa8b13ca671cf18b282451f4353f76498b6
Author: Carlos Garcia Campos <cgarcia igalia com>
Date:   Tue Sep 3 14:56:53 2019 +0200

    web-view: remove the previous extension weak pointer before setting a new one
    
    Now that WebKit has PSON enabled, it's possible to have different web
    processes for the same web view ID. When the view swaps processes, the
    page created signal is emitted in the new process, and a new web
    extension proxy is set.
    
    This might fix https://gitlab.gnome.org/GNOME/epiphany/issues/871

 embed/ephy-web-view.c | 3 +++
 1 file changed, 3 insertions(+)
---
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index a43ed8dc7..03b06da1c 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -891,6 +891,9 @@ page_created_cb (EphyEmbedShell        *shell,
   if (webkit_web_view_get_page_id (WEBKIT_WEB_VIEW (view)) != page_id)
     return;
 
+  if (view->web_extension)
+    g_object_remove_weak_pointer (G_OBJECT (view->web_extension), (gpointer *)&view->web_extension);
+
   view->web_extension = web_extension;
   g_object_add_weak_pointer (G_OBJECT (view->web_extension), (gpointer *)&view->web_extension);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]