diff options
| author | Arslaan Pathan <[email protected]> | 2026-04-05 23:17:23 +1200 |
|---|---|---|
| committer | Arslaan Pathan <[email protected]> | 2026-04-05 23:17:23 +1200 |
| commit | 0a959b0924d9e48e3b1cc59b681eec06f06ce0b4 (patch) | |
| tree | 89348ccbeb01bc8f601520c637c474f8069d3822 /main.c | |
| parent | 3ab659c927d1284595e870e34377c834c5fd838c (diff) | |
| download | cinnamon-browser-0a959b0924d9e48e3b1cc59b681eec06f06ce0b4.tar.xz cinnamon-browser-0a959b0924d9e48e3b1cc59b681eec06f06ce0b4.zip | |
Make the useragent actually work by actually SETTING THE FIELD and add persistent session storage
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -11,6 +11,7 @@ typedef struct { GtkWidget *notebook; GtkWidget *cmdbar; GtkWidget *indicator; + WebKitWebContext *web_context; } Cinnamon; typedef struct { @@ -142,7 +143,7 @@ void set_mode(Cinnamon* cinnamon, int new_mode) { } void tabopen(Cinnamon* cinnamon) { - GtkWidget *webview = webkit_web_view_new(); + GtkWidget *webview = webkit_web_view_new_with_context(cinnamon->web_context); gtk_notebook_append_page(GTK_NOTEBOOK(cinnamon->notebook), webview, gtk_label_new("New Tab")); g_signal_connect(webview, "notify::title", G_CALLBACK(on_title_changed), cinnamon->notebook); /* HOMEPAGE and USERAGENT defined in config.h */ @@ -190,6 +191,12 @@ int main(int argc, char *argv[]) { // gtk_container_add(GTK_CONTAINER(cinnamon.window), cinnamon.notebook); gtk_box_pack_start(GTK_BOX(vbox), cinnamon.notebook, TRUE, TRUE, 0); + /* initialize web context to save cookies */ + WebKitWebsiteDataManager *data_manager = webkit_website_data_manager_new("base-data-directory", g_build_filename(g_get_user_data_dir(), "cinnamon", NULL),"base-cache-directory", g_build_filename(g_get_user_cache_dir(), "cinnamon", NULL), NULL); + cinnamon.web_context = webkit_web_context_new_with_website_data_manager(data_manager); + WebKitCookieManager *cookie_manager = webkit_web_context_get_cookie_manager(cinnamon.web_context); + webkit_cookie_manager_set_persistent_storage(cookie_manager, g_build_filename(g_get_user_data_dir(), "cinnamon", "cookies.sqlite", NULL), WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE); + /* Create initial tab */ tabopen(&cinnamon); |
