OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Implements common functionality for the Chrome Extensions Cookies API. | 5 // Implements common functionality for the Chrome Extensions Cookies API. |
6 | 6 |
7 #include "chrome/browser/extensions/extension_cookies_helpers.h" | 7 #include "chrome/browser/extensions/extension_cookies_helpers.h" |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "chrome/browser/browser.h" | 10 #include "chrome/browser/browser.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 const std::string& domain_key = cookie_pair.first; | 87 const std::string& domain_key = cookie_pair.first; |
88 const net::CookieMonster::CanonicalCookie& cookie = cookie_pair.second; | 88 const net::CookieMonster::CanonicalCookie& cookie = cookie_pair.second; |
89 const std::string scheme = | 89 const std::string scheme = |
90 cookie.IsSecure() ? chrome::kHttpsScheme : chrome::kHttpScheme; | 90 cookie.IsSecure() ? chrome::kHttpsScheme : chrome::kHttpScheme; |
91 const std::string host = | 91 const std::string host = |
92 domain_key.find('.') != 0 ? domain_key : domain_key.substr(1); | 92 domain_key.find('.') != 0 ? domain_key : domain_key.substr(1); |
93 return GURL(scheme + chrome::kStandardSchemeSeparator + host + "/"); | 93 return GURL(scheme + chrome::kStandardSchemeSeparator + host + "/"); |
94 } | 94 } |
95 | 95 |
96 void AppendMatchingCookiesToList( | 96 void AppendMatchingCookiesToList( |
97 net::CookieStore* cookie_store, const std::string& store_id, | 97 const net::CookieMonster::CookieList& all_cookies, |
| 98 const std::string& store_id, |
98 const GURL& url, const DictionaryValue* details, | 99 const GURL& url, const DictionaryValue* details, |
99 const Extension* extension, | 100 const Extension* extension, |
100 ListValue* match_list) { | 101 ListValue* match_list) { |
101 net::CookieMonster::CookieList all_cookies = GetCookieListFromStore( | |
102 cookie_store, url); | |
103 net::CookieMonster::CookieList::const_iterator it; | 102 net::CookieMonster::CookieList::const_iterator it; |
104 for (it = all_cookies.begin(); it != all_cookies.end(); ++it) { | 103 for (it = all_cookies.begin(); it != all_cookies.end(); ++it) { |
105 // Ignore any cookie whose domain doesn't match the extension's | 104 // Ignore any cookie whose domain doesn't match the extension's |
106 // host permissions. | 105 // host permissions. |
107 GURL cookie_domain_url = GetURLFromCookiePair(*it); | 106 GURL cookie_domain_url = GetURLFromCookiePair(*it); |
108 if (!extension->HasHostPermission(cookie_domain_url)) | 107 if (!extension->HasHostPermission(cookie_domain_url)) |
109 continue; | 108 continue; |
110 // Filter the cookie using the match filter. | 109 // Filter the cookie using the match filter. |
111 extension_cookies_helpers::MatchFilter filter(details); | 110 extension_cookies_helpers::MatchFilter filter(details); |
112 if (filter.MatchesCookie(*it)) | 111 if (filter.MatchesCookie(*it)) |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 sub_domain.length() >= filter_value.length();) { | 176 sub_domain.length() >= filter_value.length();) { |
178 if (sub_domain == filter_value) | 177 if (sub_domain == filter_value) |
179 return true; | 178 return true; |
180 const size_t next_dot = sub_domain.find('.', 1); // Skip over leading dot. | 179 const size_t next_dot = sub_domain.find('.', 1); // Skip over leading dot. |
181 sub_domain.erase(0, next_dot); | 180 sub_domain.erase(0, next_dot); |
182 } | 181 } |
183 return false; | 182 return false; |
184 } | 183 } |
185 | 184 |
186 } // namespace extension_cookies_helpers | 185 } // namespace extension_cookies_helpers |
OLD | NEW |