[epiphany/carlosgc/extension-weak-pointer] web-view: remove the previous extension weak pointer before setting a new one
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/carlosgc/extension-weak-pointer] web-view: remove the previous extension weak pointer before setting a new one
- Date: Tue, 3 Sep 2019 13:02:48 +0000 (UTC)
commit c201ca3ba935f5df630f53f115693391f059252c
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 6b8bfc8f5..5ab387d4f 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -914,6 +914,9 @@ page_created_cb (EphyEmbedShell *shell,
if (webkit_web_view_get_page_id (WEBKIT_WEB_VIEW (view)) != page_id)
return;
+ if (view->web_process_extension)
+ g_object_remove_weak_pointer (G_OBJECT (view->web_process_extension), (gpointer
*)&view->web_process_extension);
+
view->web_process_extension = web_process_extension;
g_object_add_weak_pointer (G_OBJECT (view->web_process_extension), (gpointer
*)&view->web_process_extension);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]