コード例 #1
0
ファイル: main.c プロジェクト: macrat/rusk
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);
}
コード例 #2
0
ファイル: main.c プロジェクト: sinoory/webv8
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;
    }
}
コード例 #3
0
ファイル: setting.c プロジェクト: fanglingsu/vimb
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;
}
コード例 #4
0
ファイル: ephy-embed-prefs.c プロジェクト: Ahimta/epiphany
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);
}
コード例 #5
0
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;
}