aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/main.c b/main.c
index c8268ee..8bc8246 100644
--- a/main.c
+++ b/main.c
@@ -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);