Summary Files Commits Branches @commit @diff @stats
path: root / badwolf.c
diff options
context:
space:
mode:
Commit996ce01ea696a5ce741ad817cbe52b6e4d90145b (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-07-17 18:23:39 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-07-17 18:23:39 +0300
Files3f20099632be5356355c7841b9dff65073cdfc7b /badwolf.c
goodwolf-996ce01ea696a5ce741ad817cbe52b6e4d90145b.tar
goodwolf-996ce01ea696a5ce741ad817cbe52b6e4d90145b.tar.gz
goodwolf-996ce01ea696a5ce741ad817cbe52b6e4d90145b.zip
Parent8fcfce66f010bc5b96dbff02428b3d05447aa85d (diff)
badwolf: Added the switch -p which enables persistent storage
1 files changed, 16 insertions, 1 deletions
-rw-r--r--badwolf.c17
diff --git a/badwolf.c b/badwolf.c
index 1c61e67..5309a73 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -31,6 +31,7 @@ static gboolean tabs_constant = false;
static gboolean tray_enabled = false;
static gboolean alt_useragent = false;
static int custom_favicon_size = 30;
+static gboolean persistent_storage = false;
static gboolean WebViewCb_close(WebKitWebView *webView, gpointer user_data);
static gboolean WebViewCb_web_process_terminated(WebKitWebView *webView,
@@ -736,7 +737,9 @@ new_browser(struct Window *window, const gchar *target_url, struct Client *old_b
if(old_browser == NULL)
{
- WebKitWebsiteDataManager *website_data_manager = webkit_website_data_manager_new_ephemeral();
+ WebKitWebsiteDataManager *website_data_manager =
+ (persistent_storage) ? webkit_website_data_manager_new(NULL)
+ : webkit_website_data_manager_new_ephemeral();
webkit_website_data_manager_set_itp_enabled(website_data_manager, TRUE);
web_context = webkit_web_context_new_with_website_data_manager(website_data_manager);
@@ -746,6 +749,15 @@ new_browser(struct Window *window, const gchar *target_url, struct Client *old_b
WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES);
webkit_web_context_set_web_extensions_directory(web_context, web_extensions_directory);
webkit_web_context_set_favicon_database_directory(web_context, NULL);
+ if (persistent_storage) {
+ webkit_cookie_manager_set_persistent_storage(
+ webkit_website_data_manager_get_cookie_manager(website_data_manager),
+ g_build_filename(g_get_user_config_dir(), "badwolf", "cookies.txt", NULL),
+ WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT);
+ webkit_cookie_manager_set_accept_policy(
+ webkit_website_data_manager_get_cookie_manager(website_data_manager),
+ WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS);
+ }
g_signal_connect(G_OBJECT(web_context),
"download-started",
@@ -1232,11 +1244,14 @@ main(int argc, char *argv[])
tray_enabled = TRUE;
else if (argv[1][1] == 'u')
alt_useragent = TRUE;
+ else if (argv[1][1] == 'p')
+ persistent_storage = TRUE;
else if (argv[1][1] == 's') {
argv++;
argc--;
custom_favicon_size = (argv[1][0] - '0') * 10 + argv[1][1] - '0';
}
+
argv++;
argc--;
}