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

Unified Diff: net/cookies/cookie_monster.h

Issue 1705753002: Evict non-secure cookies less agressively. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Compiling is fun. Created 4 years, 10 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
« no previous file with comments | « no previous file | net/cookies/cookie_monster.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cookies/cookie_monster.h
diff --git a/net/cookies/cookie_monster.h b/net/cookies/cookie_monster.h
index 0ad3c94ddf6bb06df89ecad8d46cd2e522ca4028..f482e5c19a3cf623917c40091038bff7fa0045c4 100644
--- a/net/cookies/cookie_monster.h
+++ b/net/cookies/cookie_monster.h
@@ -129,9 +129,11 @@ class NET_EXPORT CookieMonster : public CookieStore {
static const size_t kPurgeCookies;
// Quota for cookies with {low, medium, high} priorities within a domain.
- static const size_t kDomainCookiesQuotaLow;
- static const size_t kDomainCookiesQuotaMedium;
- static const size_t kDomainCookiesQuotaHigh;
+ // The quota is specified as a percentage of the total number of cookies we
+ // intend to retain for a domain.
+ static const double kDomainCookiesQuotaLow;
+ static const double kDomainCookiesQuotaMedium;
+ static const double kDomainCookiesQuotaHigh;
// The store passed in should not have had Init() called on it yet. This
// class will take care of initializing it. The backing store is NOT owned by
@@ -375,6 +377,8 @@ class NET_EXPORT CookieMonster : public CookieStore {
COOKIE_DELETE_EQUIVALENT_LAST_ENTRY
};
+ enum GCType { GC_NONSECURE, GC_SECURE };
+
// The strategy for fetching cookies. Controlled by Finch experiment.
enum FetchStrategy {
// Fetches all cookies only when they're needed.
@@ -591,6 +595,27 @@ class NET_EXPORT CookieMonster : public CookieStore {
size_t purge_goal,
CookieItVector cookie_its);
+ // Helper for GarbageCollect(). Deletes |purge_goal| cookies of type |type|
+ // from the ranges specified in |it_bdd|. Returns the number of cookies
+ // deleted.
+ //
+ // |it_bdd| is a bit of a complicated beast: it must be a 7-element array
+ // of 'CookieItVector::Iterator' objects that demarcate the boundaries of
+ // a list of cookies sorted first by secure/non-secure, and then by priority,
+ // low to high. That is, it ought to look something like:
+ //
+ // LLLLMMMMHHHHHLLLLMMMMHHHH
+ // ^ ^ ^ ^ ^ ^ ^
+ // 0 1 2 3 4 5 6
+ //
+ // TODO(mkwst): This is super-complicated. We should determine whether we
+ // can simplify our implementation of "priority".
+ size_t GarbageCollectNumFromRangeWithQuota(const base::Time& current,
+ const base::Time& safe_date,
+ size_t purge_goal,
+ CookieItVector::iterator* it_bdd,
+ GCType type);
+
// Find the key (for lookup in cookies_) based on the given domain.
// See comment on keys before the CookieMap typedef.
std::string GetKey(const std::string& domain) const;
« no previous file with comments | « no previous file | net/cookies/cookie_monster.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698