summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Catanzaro <mcatanzaro@gnome.org>2021-02-09 13:38:19 -0600
committerAlexander Mikhaylenko <alexm@gnome.org>2021-02-16 09:23:36 +0000
commit0a787de3063511b04835cf5abdcabb069cd79966 (patch)
treefb9ee31b012eacbf60c989dd089f7e011ed0ac7f
parented4ae429693b09d5c60975725a910715823b37bc (diff)
downloadepiphany-mcatanzaro/window-object-cleared.tar.gz
Assert window object is truly cleared in window_object_clearedmcatanzaro/window-object-cleared
See #1435 for discussion of why we can't do this with older WebKit.
-rw-r--r--embed/web-process-extension/ephy-web-process-extension.c4
-rw-r--r--embed/web-process-extension/ephy-webextension-api.c7
-rw-r--r--meson.build2
3 files changed, 7 insertions, 6 deletions
diff --git a/embed/web-process-extension/ephy-web-process-extension.c b/embed/web-process-extension/ephy-web-process-extension.c
index f98260e17..82bf3eda8 100644
--- a/embed/web-process-extension/ephy-web-process-extension.c
+++ b/embed/web-process-extension/ephy-web-process-extension.c
@@ -689,6 +689,10 @@ window_object_cleared_cb (WebKitScriptWorld *world,
return;
}
+ result = jsc_context_get_value (js_context, "Ephy");
+ g_assert (jsc_value_is_undefined (result));
+ g_clear_object (&result);
+
bytes = g_resources_lookup_data ("/org/gnome/epiphany-web-process-extension/js/ephy.js", G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
data = g_bytes_get_data (bytes, &data_size);
result = jsc_context_evaluate_with_source_uri (js_context, data, data_size, "resource:///org/gnome/epiphany-web-process-extension/js/ephy.js", 1);
diff --git a/embed/web-process-extension/ephy-webextension-api.c b/embed/web-process-extension/ephy-webextension-api.c
index 44d3b3860..35f5d85fd 100644
--- a/embed/web-process-extension/ephy-webextension-api.c
+++ b/embed/web-process-extension/ephy-webextension-api.c
@@ -90,12 +90,9 @@ set_up_webextensions (EphyWebProcessExtension *extension,
g_autoptr (JSCValue) result = NULL;
const char *data;
gsize data_size;
- static gboolean setup = FALSE;
- if (setup)
- return;
-
- setup = TRUE;
+ result = jsc_context_get_value (js_context, "browser");
+ g_assert (jsc_value_is_undefined (result));
js_browser = jsc_value_new_object (js_context, NULL, NULL);
jsc_context_set_value (js_context, "browser", js_browser);
diff --git a/meson.build b/meson.build
index 42581605f..cf2862ed1 100644
--- a/meson.build
+++ b/meson.build
@@ -75,7 +75,7 @@ conf.set10('ENABLE_GSB', gsb_api_key != '')
glib_requirement = '>= 2.64.0'
gtk_requirement = '>= 3.24.0'
nettle_requirement = '>= 3.4'
-webkitgtk_requirement = '>= 2.31.1'
+webkitgtk_requirement = '>= 2.31.2'
cairo_dep = dependency('cairo', version: '>= 1.2')
gcr_dep = dependency('gcr-3', version: '>= 3.5.5')