Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit4df40cf5a802aca6f986c3669212b3c6b072ba5b (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2021-04-07 16:48:28 +0200
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2021-04-07 16:48:28 +0200
Files518d73584114285f8a0288f3d3ded116a01559c7
goodwolf-4df40cf5a802aca6f986c3669212b3c6b072ba5b.tar
goodwolf-4df40cf5a802aca6f986c3669212b3c6b072ba5b.tar.gz
goodwolf-4df40cf5a802aca6f986c3669212b3c6b072ba5b.zip
Parent27cf275730730674367efdd4c0f84524282b7c3d (diff)
badwolf: Inherit the WebContext when old_browser is present
1 files changed, 17 insertions, 10 deletions
-rw-r--r--badwolf.c27
diff --git a/badwolf.c b/badwolf.c
index eeaedb2..9e8bbc6 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -623,6 +623,8 @@ new_browser(struct Window *window, const gchar *target_url, struct Client *old_b
target_url = badwolf_ensure_uri_scheme(target_url, (old_browser == NULL));
char *badwolf_l10n = NULL;
+ WebKitWebContext *web_context;
+
if(browser == NULL) return NULL;
browser->window = window;
@@ -666,16 +668,19 @@ new_browser(struct Window *window, const gchar *target_url, struct Client *old_b
browser->statuslabel = gtk_label_new(NULL);
gtk_widget_set_name(browser->statuslabel, "browser__statuslabel");
- WebKitWebsiteDataManager *website_data_manager = webkit_website_data_manager_new_ephemeral();
- webkit_website_data_manager_set_itp_enabled(website_data_manager, TRUE);
+ if(old_browser == NULL) {
+ WebKitWebsiteDataManager *website_data_manager = webkit_website_data_manager_new_ephemeral();
+ webkit_website_data_manager_set_itp_enabled(website_data_manager, TRUE);
- WebKitWebContext *web_context =
- webkit_web_context_new_with_website_data_manager(website_data_manager);
- g_object_unref(website_data_manager);
- webkit_web_context_set_sandbox_enabled(web_context, TRUE);
- webkit_web_context_set_process_model(web_context,
- WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES);
- webkit_web_context_set_web_extensions_directory(web_context, web_extensions_directory);
+ web_context = webkit_web_context_new_with_website_data_manager(website_data_manager);
+ g_object_unref(website_data_manager);
+ webkit_web_context_set_sandbox_enabled(web_context, TRUE);
+ webkit_web_context_set_process_model(web_context,
+ WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES);
+ webkit_web_context_set_web_extensions_directory(web_context, web_extensions_directory);
+ } else {
+ web_context = webkit_web_view_get_context(old_browser->webView);
+ }
badwolf_l10n = getenv("BADWOLF_L10N");
@@ -704,7 +709,9 @@ new_browser(struct Window *window, const gchar *target_url, struct Client *old_b
settings,
NULL));
gtk_widget_set_name(GTK_WIDGET(browser->webView), "browser__webView");
- g_object_unref(web_context);
+ if(old_browser == NULL) {
+ g_object_unref(web_context);
+ }
g_object_unref(settings);
gtk_box_pack_start(