diff options
author | rdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-27 17:25:38 +0000 |
---|---|---|
committer | rdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-27 17:25:38 +0000 |
commit | c58030205f55b793ec6cedbaa1967ccc4a9f3465 (patch) | |
tree | 165cadae761d963560a4c55a510d9c637390ad29 /net/base/cookie_monster.cc | |
parent | 001774129509b18784637bb8569cf9b090388797 (diff) | |
download | chromium_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.cc | 15 |
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(); |