summaryrefslogtreecommitdiffstats
path: root/net/base/cookie_monster.cc
diff options
context:
space:
mode:
authorrdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-27 17:25:38 +0000
committerrdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-27 17:25:38 +0000
commitc58030205f55b793ec6cedbaa1967ccc4a9f3465 (patch)
tree165cadae761d963560a4c55a510d9c637390ad29 /net/base/cookie_monster.cc
parent001774129509b18784637bb8569cf9b090388797 (diff)
downloadchromium_src-c58030205f55b793ec6cedbaa1967ccc4a9f3465.zip
chromium_src-c58030205f55b793ec6cedbaa1967ccc4a9f3465.tar.gz
chromium_src-c58030205f55b793ec6cedbaa1967ccc4a9f3465.tar.bz2
Change, unify, and specify ordering of cookies from CookieMonster.
Affected interfaces: * GetCookiesWithOptions (used by HTTP requests) * GetAllCookiesForURL (used by extensions and Cookies UI) * GetAllCookies (used by Cookies UI). BUG=8850 (indirectly) TEST=Standard cookie monster tests, unit_tests::CookiesTreeModelTest.OriginOrdering, browser_tests::ExtensionApiTest.Cookies Review URL: http://codereview.chromium.org/3170034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57694 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/cookie_monster.cc')
-rw-r--r--net/base/cookie_monster.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/net/base/cookie_monster.cc b/net/base/cookie_monster.cc
index 029d841..262da6a 100644
--- a/net/base/cookie_monster.cc
+++ b/net/base/cookie_monster.cc
@@ -1163,9 +1163,19 @@ CookieMonster::CookieList CookieMonster::GetAllCookies() {
CookieMapItPair(cookies_.begin(), cookies_.end()),
NULL);
- CookieList cookie_list;
+ // Copy the CanonicalCookie pointers from the map so that we can use the same
+ // sorter as elsewhere, then copy the result out.
+ std::vector<CanonicalCookie*> cookie_ptrs;
+ cookie_ptrs.reserve(cookies_.size());
for (CookieMap::iterator it = cookies_.begin(); it != cookies_.end(); ++it)
- cookie_list.push_back(*it->second);
+ cookie_ptrs.push_back(it->second);
+ std::sort(cookie_ptrs.begin(), cookie_ptrs.end(), CookieSorter);
+
+ CookieList cookie_list;
+ cookie_list.reserve(cookie_ptrs.size());
+ for (std::vector<CanonicalCookie*>::const_iterator it = cookie_ptrs.begin();
+ it != cookie_ptrs.end(); ++it)
+ cookie_list.push_back(**it);
return cookie_list;
}
@@ -1179,6 +1189,7 @@ CookieMonster::CookieList CookieMonster::GetAllCookiesForURL(const GURL& url) {
std::vector<CanonicalCookie*> cookie_ptrs;
FindCookiesForHostAndDomain(url, options, false, &cookie_ptrs);
+ std::sort(cookie_ptrs.begin(), cookie_ptrs.end(), CookieSorter);
CookieList cookies;
for (std::vector<CanonicalCookie*>::const_iterator it = cookie_ptrs.begin();