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

Unified Diff: net/base/cookie_monster.h

Issue 4630001: Implement Origin cookies. Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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/base/cookie_monster.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/cookie_monster.h
===================================================================
--- net/base/cookie_monster.h (revision 65294)
+++ net/base/cookie_monster.h (working copy)
@@ -159,7 +159,7 @@
const std::string& domain,
const std::string& path,
const base::Time& expiration_time,
- bool secure, bool http_only);
+ bool secure, bool http_only, bool origin);
// Returns all the cookies, for use in management UI, etc. This does not mark
// the cookies as having been accessed.
@@ -487,6 +487,7 @@
const std::string& path,
bool secure,
bool httponly,
+ bool origin,
const base::Time& creation,
const base::Time& last_access,
bool has_expires,
@@ -508,7 +509,7 @@
const GURL& url, const std::string& name, const std::string& value,
const std::string& domain, const std::string& path,
const base::Time& creation_time, const base::Time& expiration_time,
- bool secure, bool http_only);
+ bool secure, bool http_only, bool origin);
const std::string& Name() const { return name_; }
const std::string& Value() const { return value_; }
@@ -521,6 +522,7 @@
const base::Time& ExpiryDate() const { return expiry_date_; }
bool IsSecure() const { return secure_; }
bool IsHttpOnly() const { return httponly_; }
+ bool IsOrigin() const { return origin_; }
bool IsDomainCookie() const {
return !domain_.empty() && domain_[0] == '.'; }
bool IsHostCookie() const { return !IsDomainCookie(); }
@@ -536,11 +538,13 @@
// having been canonicalized (in
// GetCookieDomainWithString->CanonicalizeHost).
bool IsEquivalent(const CanonicalCookie& ecc) const {
- // It seems like it would make sense to take secure and httponly into
- // account, but the RFC doesn't specify this.
- // NOTE: Keep this logic in-sync with TrimDuplicateCookiesForHost().
- return (name_ == ecc.Name() && domain_ == ecc.Domain()
- && path_ == ecc.Path());
+ if (origin_ != ecc.IsOrigin())
+ return false;
+ if (origin_ && secure_ != ecc.IsSecure())
+ return false;
+ return (name_ == ecc.Name() &&
+ domain_ == ecc.Domain() &&
+ path_ == ecc.Path());
}
void SetLastAccessDate(const base::Time& date) {
@@ -562,6 +566,7 @@
bool has_expires_;
bool secure_;
bool httponly_;
+ bool origin_;
};
class CookieMonster::Delegate
@@ -608,6 +613,7 @@
const std::string& MaxAge() const { return pairs_[maxage_index_].second; }
bool IsSecure() const { return secure_index_ != 0; }
bool IsHttpOnly() const { return httponly_index_ != 0; }
+ bool IsOrigin() const { return origin_index_ != 0; }
// Returns the number of attributes, for example, returning 2 for:
// "BLAH=hah; path=/; domain=.google.com"
@@ -666,6 +672,7 @@
size_t maxage_index_;
size_t secure_index_;
size_t httponly_index_;
+ size_t origin_index_;
DISALLOW_COPY_AND_ASSIGN(ParsedCookie);
};
« no previous file with comments | « no previous file | net/base/cookie_monster.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698