Index: net/base/static_cookie_policy.cc |
diff --git a/net/base/static_cookie_policy.cc b/net/base/static_cookie_policy.cc |
index 0ff6ead91e284ae7be284902badca1a44cbc2121..19e0a16028255aff66c90c980dd4bdb5554b52ad 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( |