void togglePrivateBrowsing(RuskWindow *rusk) { WebKitSettings *settings = webkit_web_view_get_settings(rusk->webview); WebKitCookieManager *cookieManager = webkit_web_context_get_cookie_manager(webkit_web_context_get_default()); if(webkit_settings_get_enable_private_browsing(settings)) { webkit_settings_set_enable_private_browsing(settings, FALSE); webkit_cookie_manager_set_accept_policy(cookieManager, WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS); }else { webkit_settings_set_enable_private_browsing(settings, TRUE); webkit_cookie_manager_set_accept_policy(cookieManager, WEBKIT_COOKIE_POLICY_ACCEPT_NEVER); } updateBorder(rusk); }
static int initCookieManager(WebKitSettings *webkitSettings) { if(!webkitSettings) return 0; // Enable cooki manager to store cookie message.--- by Jiayu WebKitCookieManager* cookiemanager = webkit_web_context_get_cookie_manager(webkit_web_context_get_default()); int error = 0; gchar* home = getenv("HOME"); gchar cookieDatabasePath[2048]; g_sprintf(cookieDatabasePath, "%s/.cookie", home); if(!g_file_test(cookieDatabasePath, G_FILE_TEST_IS_DIR) || !g_access(cookieDatabasePath, /*S_IWUSR|S_IRUSR*/0755)){ error = g_mkdir_with_parents(cookieDatabasePath, /*S_IWUSR|S_IRUSR*/ 0755); } if(!error){ gchar cookieDatabase[2048]; g_sprintf(cookieDatabase, "%s/cookie_database", cookieDatabasePath); g_printf("cookiedatabase path is %s\n", cookieDatabase); webkit_cookie_manager_set_persistent_storage(cookiemanager, cookieDatabase, WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE); }else{ g_printerr("LOG-> Init: Failed to init cookie database\n"); return 0; } //g_mkdir_with_parents(cookieDatabaePath, ); //webkit_cookie_manager_set_persistent_storage(cookiemanager, "cookies_database", WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE); WebKitCookieAcceptPolicy cookiePolicy = WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS; int cookieSetting; error = 0; g_object_get(webkitSettings, key[PROP_COOKIE_SETTING], &cookieSetting, NULL); switch(cookieSetting){ case 0: cookiePolicy = WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS; break; case 1: cookiePolicy = WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY; break; case 2: cookiePolicy = WEBKIT_COOKIE_POLICY_ACCEPT_NEVER; break; default: error = 1; g_printerr("LOG-> Settings: Failed to get the correct cookie setting policy\n"); break; } if(error) return 0; else{ webkit_cookie_manager_set_accept_policy(cookiemanager,cookiePolicy); return 1; } }
static int cookie_accept(Client *c, const char *name, DataType type, void *value, void *data) { WebKitWebContext *ctx; WebKitCookieManager *cm; char *policy = (char*)value; ctx = webkit_web_view_get_context(c->webview); cm = webkit_web_context_get_cookie_manager(ctx); if (strcmp("always", policy) == 0) { webkit_cookie_manager_set_accept_policy(cm, WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS); } else if (strcmp("origin", policy) == 0) { webkit_cookie_manager_set_accept_policy(cm, WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY); } else if (strcmp("never", policy) == 0) { webkit_cookie_manager_set_accept_policy(cm, WEBKIT_COOKIE_POLICY_ACCEPT_NEVER); } else { vb_echo(c, MSG_ERROR, TRUE, "%s must be in [always, origin, never]", name); return CMD_ERROR | CMD_KEEPINPUT; } return CMD_SUCCESS; }
void ephy_embed_prefs_set_cookie_accept_policy (WebKitCookieManager *cookie_manager, const char *settings_policy) { WebKitCookieAcceptPolicy policy; if (!strcmp (settings_policy, "never")) policy = WEBKIT_COOKIE_POLICY_ACCEPT_NEVER; else if (!strcmp (settings_policy, "always")) policy = WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS; else if (!strcmp (settings_policy, "no-third-party")) policy = WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY; else { g_warn_if_reached (); return; } webkit_cookie_manager_set_accept_policy (cookie_manager, policy); }
static GtkWidget * _webkit_web_view_new (OAuthAskAuthorizationDialog *self) { WebKitWebContext *context; GtkWidget *view; WebKitSettings *settings; WebKitCookieManager *cookie_manager; GFile *file; char *cookie_filename; context = webkit_web_context_get_default (); view = webkit_web_view_new_with_context (context); settings = webkit_settings_new (); webkit_settings_set_enable_javascript (settings, TRUE); webkit_settings_set_javascript_can_open_windows_automatically (settings, TRUE); webkit_web_view_set_settings (WEBKIT_WEB_VIEW (view), settings); file = gth_user_dir_get_file_for_write (GTH_DIR_CACHE, GTHUMB_DIR, "cookies", NULL); cookie_filename = g_file_get_path (file); cookie_manager = webkit_web_context_get_cookie_manager (context); webkit_cookie_manager_set_accept_policy (cookie_manager, WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS); webkit_cookie_manager_set_persistent_storage (cookie_manager, cookie_filename, WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT); webkit_web_context_set_cache_model (context, WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER); g_free (cookie_filename); g_object_unref (file); g_signal_connect (view, "create", G_CALLBACK (webkit_view_create_cb), self); g_signal_connect (view, "ready-to-show", G_CALLBACK (webkit_view_ready_to_show_cb), self); return view; }