diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-12 08:47:57 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-12 08:47:57 +0000 |
commit | 4c6452d27812f765c27aefb673eee90a17edbb82 (patch) | |
tree | 3e61dc8e740278a4b2a140102b4895203508b846 /net | |
parent | 6340f49d48a13c600319fc60f774f5ad6e3103e8 (diff) | |
download | chromium_src-4c6452d27812f765c27aefb673eee90a17edbb82.zip chromium_src-4c6452d27812f765c27aefb673eee90a17edbb82.tar.gz chromium_src-4c6452d27812f765c27aefb673eee90a17edbb82.tar.bz2 |
Clarify wording around blocking 3rd party cookies and add lab to block reading of 3rd party cookies
BUG=69066
TEST=net_unittests
Review URL: http://codereview.chromium.org/6207005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71148 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/base/static_cookie_policy.cc | 11 | ||||
-rw-r--r-- | net/base/static_cookie_policy.h | 13 | ||||
-rw-r--r-- | net/base/static_cookie_policy_unittest.cc | 20 |
3 files changed, 36 insertions, 8 deletions
diff --git a/net/base/static_cookie_policy.cc b/net/base/static_cookie_policy.cc index 0ff6ead..19e0a16 100644 --- a/net/base/static_cookie_policy.cc +++ b/net/base/static_cookie_policy.cc @@ -16,9 +16,13 @@ int StaticCookiePolicy::CanGetCookies(const GURL& url, CompletionCallback* callback) { switch (type_) { case StaticCookiePolicy::ALLOW_ALL_COOKIES: + case StaticCookiePolicy::BLOCK_SETTING_THIRD_PARTY_COOKIES: return OK; - case StaticCookiePolicy::BLOCK_THIRD_PARTY_COOKIES: - return OK; + case StaticCookiePolicy::BLOCK_ALL_THIRD_PARTY_COOKIES: + if (first_party_for_cookies.is_empty()) + return OK; // Empty first-party URL indicates a first-party request. + return RegistryControlledDomainService::SameDomainOrHost( + url, first_party_for_cookies) ? OK : ERR_ACCESS_DENIED; case StaticCookiePolicy::BLOCK_ALL_COOKIES: return ERR_ACCESS_DENIED; default: @@ -34,7 +38,8 @@ int StaticCookiePolicy::CanSetCookie(const GURL& url, switch (type_) { case StaticCookiePolicy::ALLOW_ALL_COOKIES: return OK; - case StaticCookiePolicy::BLOCK_THIRD_PARTY_COOKIES: + case StaticCookiePolicy::BLOCK_SETTING_THIRD_PARTY_COOKIES: + case StaticCookiePolicy::BLOCK_ALL_THIRD_PARTY_COOKIES: if (first_party_for_cookies.is_empty()) return OK; // Empty first-party URL indicates a first-party request. return RegistryControlledDomainService::SameDomainOrHost( diff --git a/net/base/static_cookie_policy.h b/net/base/static_cookie_policy.h index 4633161..815aadc 100644 --- a/net/base/static_cookie_policy.h +++ b/net/base/static_cookie_policy.h @@ -23,10 +23,17 @@ namespace net { // class StaticCookiePolicy : public CookiePolicy { public: + // Do not change the order of these types as they are persisted in + // preferences. enum Type { - ALLOW_ALL_COOKIES = 0, // Do not perform any cookie blocking. - BLOCK_THIRD_PARTY_COOKIES, // Prevent third-party cookies from being set. - BLOCK_ALL_COOKIES // Disable cookies. + // Do not perform any cookie blocking. + ALLOW_ALL_COOKIES = 0, + // Prevent only third-party cookies from being set. + BLOCK_SETTING_THIRD_PARTY_COOKIES, + // Block all cookies (third-party or not) from begin set or read. + BLOCK_ALL_COOKIES, + // Prevent only third-party cookies from being set or read. + BLOCK_ALL_THIRD_PARTY_COOKIES }; StaticCookiePolicy() diff --git a/net/base/static_cookie_policy_unittest.cc b/net/base/static_cookie_policy_unittest.cc index 35c1a82..57dc4fa 100644 --- a/net/base/static_cookie_policy_unittest.cc +++ b/net/base/static_cookie_policy_unittest.cc @@ -62,8 +62,8 @@ TEST_F(StaticCookiePolicyTest, AllowAllCookiesTest) { EXPECT_EQ(net::OK, CanSetCookie(url_google_, GURL())); } -TEST_F(StaticCookiePolicyTest, BlockThirdPartyCookiesTest) { - SetPolicyType(net::StaticCookiePolicy::BLOCK_THIRD_PARTY_COOKIES); +TEST_F(StaticCookiePolicyTest, BlockSettingThirdPartyCookiesTest) { + SetPolicyType(net::StaticCookiePolicy::BLOCK_SETTING_THIRD_PARTY_COOKIES); EXPECT_EQ(net::OK, CanGetCookies(url_google_, url_google_)); EXPECT_EQ(net::OK, CanGetCookies(url_google_, url_google_secure_)); @@ -78,6 +78,22 @@ TEST_F(StaticCookiePolicyTest, BlockThirdPartyCookiesTest) { EXPECT_EQ(net::OK, CanSetCookie(url_google_, GURL())); } +TEST_F(StaticCookiePolicyTest, BlockAllThirdPartyCookiesTest) { + SetPolicyType(net::StaticCookiePolicy::BLOCK_ALL_THIRD_PARTY_COOKIES); + + EXPECT_EQ(net::OK, CanGetCookies(url_google_, url_google_)); + EXPECT_EQ(net::OK, CanGetCookies(url_google_, url_google_secure_)); + EXPECT_EQ(net::OK, CanGetCookies(url_google_, url_google_mail_)); + EXPECT_NE(net::OK, CanGetCookies(url_google_, url_google_analytics_)); + EXPECT_EQ(net::OK, CanGetCookies(url_google_, GURL())); + + EXPECT_EQ(net::OK, CanSetCookie(url_google_, url_google_)); + EXPECT_EQ(net::OK, CanSetCookie(url_google_, url_google_secure_)); + EXPECT_EQ(net::OK, CanSetCookie(url_google_, url_google_mail_)); + EXPECT_NE(net::OK, CanSetCookie(url_google_, url_google_analytics_)); + EXPECT_EQ(net::OK, CanSetCookie(url_google_, GURL())); +} + TEST_F(StaticCookiePolicyTest, BlockAllCookiesTest) { SetPolicyType(net::StaticCookiePolicy::BLOCK_ALL_COOKIES); |