CookieInclusionStatus: Support warnings and multiple exclusion reasons
Previously CookieInclusionStatus was just an enum with one value for
inclusion and a number of other values for exclusion due to different
reasons.
This changes CookieInclusionStatus to hold multiple exclusion reasons,
with inclusion represented as a lack of any exclusion reasons. This is
implemented as a bit vector with each exclusion reason represented as
a single bit.
This also adds warnings to CookieInclusionStatus, which indicate when
warnings should be emitted about a cookie (regardless of inclusion or
exclusion). This removes the need for the previous hack which indicated
warnings by making a duplicate of the cookie with a different
CookieInclusionStatus.
Bug: 993843
Change-Id: I8f4f76ea5c7225cd01342786b20f9e0b05f582c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1756157
Commit-Queue: Lily Chen <[email protected]>
Reviewed-by: Sylvain Defresne <[email protected]>
Reviewed-by: Victor Costan <[email protected]>
Reviewed-by: Boris Sazonov <[email protected]>
Reviewed-by: Toni Baržić <[email protected]>
Reviewed-by: Christian Dullweber <[email protected]>
Reviewed-by: Kyle Horimoto <[email protected]>
Reviewed-by: Wez <[email protected]>
Reviewed-by: Maks Orlovich <[email protected]>
Reviewed-by: Karan Bhatia <[email protected]>
Reviewed-by: Balazs Engedy <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Andrey Kosyakov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#691902}
diff --git a/ios/net/cookies/cookie_store_ios.mm b/ios/net/cookies/cookie_store_ios.mm
index 46ac171..97dd12d1 100644
--- a/ios/net/cookies/cookie_store_ios.mm
+++ b/ios/net/cookies/cookie_store_ios.mm
@@ -248,8 +248,8 @@
if (cookie->IsSecure() && !secure_source) {
if (!callback.is_null())
- std::move(callback).Run(
- net::CanonicalCookie::CookieInclusionStatus::EXCLUDE_SECURE_ONLY);
+ std::move(callback).Run(net::CanonicalCookie::CookieInclusionStatus(
+ net::CanonicalCookie::CookieInclusionStatus::EXCLUDE_SECURE_ONLY));
return;
}
@@ -258,14 +258,14 @@
if (ns_cookie != nil) {
system_store_->SetCookieAsync(
ns_cookie, &cookie->CreationDate(),
- BindSetCookiesCallback(
- &callback, net::CanonicalCookie::CookieInclusionStatus::INCLUDE));
+ BindSetCookiesCallback(&callback,
+ net::CanonicalCookie::CookieInclusionStatus()));
return;
}
if (!callback.is_null())
- std::move(callback).Run(
- net::CanonicalCookie::CookieInclusionStatus::EXCLUDE_FAILURE_TO_STORE);
+ std::move(callback).Run(net::CanonicalCookie::CookieInclusionStatus(
+ net::CanonicalCookie::CookieInclusionStatus::EXCLUDE_FAILURE_TO_STORE));
}
void CookieStoreIOS::GetCookieListWithOptionsAsync(
@@ -643,7 +643,7 @@
SetCookiesCallback callback,
net::CanonicalCookie::CookieInclusionStatus status) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- if (status == net::CanonicalCookie::CookieInclusionStatus::INCLUDE)
+ if (status.IsInclude())
UpdateCachesFromCookieMonster();
if (!callback.is_null())
std::move(callback).Run(status);
@@ -682,9 +682,8 @@
cookie_list.reserve([cookies count]);
for (NSHTTPCookie* cookie in cookies) {
base::Time created = system_store_->GetCookieCreationTime(cookie);
- cookie_list.push_back(
- {CanonicalCookieFromSystemCookie(cookie, created),
- net::CanonicalCookie::CookieInclusionStatus::INCLUDE});
+ cookie_list.push_back({CanonicalCookieFromSystemCookie(cookie, created),
+ net::CanonicalCookie::CookieInclusionStatus()});
}
return cookie_list;
}