Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Unified Diff: ios/net/cookies/cookie_store_ios.mm

Issue 1844243002: [CookieStore] Upgrading host-based deleting to predicate-based deleting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix IOS Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/net/cookies/cookie_store_ios.mm
diff --git a/ios/net/cookies/cookie_store_ios.mm b/ios/net/cookies/cookie_store_ios.mm
index 78fb510ffa93c837cfc09e8d5f356b20df50ee2c..bf5e85d50427617ba28481fd5fa84a08a6f35c45 100644
--- a/ios/net/cookies/cookie_store_ios.mm
+++ b/ios/net/cookies/cookie_store_ios.mm
@@ -250,15 +250,18 @@ bool IsCookieCreatedBetween(base::Time time_begin,
// Tests whether the |creation_time| of |cookie| is in the time range defined
// by |time_begin| and |time_end| and the cookie host match |host|. A null
// |time_end| means end-of-time.
-bool IsCookieCreatedBetweenForHost(base::Time time_begin,
- base::Time time_end,
- NSString* host,
- NSHTTPCookie* cookie,
- base::Time creation_time) {
- NSString* domain = [cookie domain];
- return [domain characterAtIndex:0] != '.' &&
- [domain caseInsensitiveCompare:host] == NSOrderedSame &&
- IsCookieCreatedBetween(time_begin, time_end, cookie, creation_time);
+bool IsCookieCreatedBetweenWithPredicate(
+ base::Time time_begin,
+ base::Time time_end,
+ const net::CookieStore::CookiePredicate& predicate,
+ NSHTTPCookie* cookie,
+ base::Time creation_time) {
+ if (predicate.is_null())
+ return false;
+ CanonicalCookie canonical_cookie =
+ CanonicalCookieFromSystemCookie(cookie, creation_time);
+ return IsCookieCreatedBetween(time_begin, time_end, cookie, creation_time) &&
+ predicate.Run(canonical_cookie);
}
// Adds cookies in |cookies| with name |name| to |filtered|.
@@ -688,10 +691,10 @@ void CookieStoreIOS::DeleteAllCreatedBetweenAsync(
}
}
-void CookieStoreIOS::DeleteAllCreatedBetweenForHostAsync(
- const base::Time delete_begin,
- const base::Time delete_end,
- const GURL& url,
+void CookieStoreIOS::DeleteAllCreatedBetweenWithPredicateAsync(
+ const base::Time& delete_begin,
+ const base::Time& delete_end,
+ const CookiePredicate& predicate,
const DeleteCallback& callback) {
DCHECK(thread_checker_.CalledOnValidThread());
@@ -700,19 +703,19 @@ void CookieStoreIOS::DeleteAllCreatedBetweenForHostAsync(
switch (synchronization_state_) {
case NOT_SYNCHRONIZED:
- cookie_monster_->DeleteAllCreatedBetweenForHostAsync(
- delete_begin, delete_end, url, WrapDeleteCallback(callback));
+ cookie_monster_->DeleteAllCreatedBetweenWithPredicateAsync(
+ delete_begin, delete_end, predicate, WrapDeleteCallback(callback));
break;
case SYNCHRONIZING:
tasks_pending_synchronization_.push_back(
- base::Bind(&CookieStoreIOS::DeleteAllCreatedBetweenForHostAsync,
- weak_factory_.GetWeakPtr(), delete_begin, delete_end, url,
- WrapDeleteCallback(callback)));
+ base::Bind(&CookieStoreIOS::DeleteAllCreatedBetweenWithPredicateAsync,
+ weak_factory_.GetWeakPtr(), delete_begin, delete_end,
+ predicate, WrapDeleteCallback(callback)));
break;
case SYNCHRONIZED:
- NSString* host = base::SysUTF8ToNSString(url.host());
- CookieFilterFunction filter = base::Bind(IsCookieCreatedBetweenForHost,
- delete_begin, delete_end, host);
+ CookieFilterFunction filter =
+ base::Bind(IsCookieCreatedBetweenWithPredicate, delete_begin,
+ delete_end, predicate);
DeleteCookiesWithFilter(filter, callback);
break;
}

Powered by Google App Engine
This is Rietveld 408576698