| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/browsing_data/browsing_data_cookie_helper.h" | 5 #include "chrome/browser/browsing_data/browsing_data_cookie_helper.h" |
| 6 | 6 |
| 7 #include "utility" | 7 #include "utility" |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 AddCookie(frame_url, *add_cookie); | 132 AddCookie(frame_url, *add_cookie); |
| 133 } | 133 } |
| 134 } | 134 } |
| 135 | 135 |
| 136 void CannedBrowsingDataCookieHelper::AddChangedCookie( | 136 void CannedBrowsingDataCookieHelper::AddChangedCookie( |
| 137 const GURL& frame_url, | 137 const GURL& frame_url, |
| 138 const GURL& url, | 138 const GURL& url, |
| 139 const std::string& cookie_line, | 139 const std::string& cookie_line, |
| 140 const net::CookieOptions& options) { | 140 const net::CookieOptions& options) { |
| 141 base::Time creation_time = base::Time::Now(); | 141 base::Time creation_time = base::Time::Now(); |
| 142 base::Time server_time; |
| 143 if (options.has_server_time()) |
| 144 server_time = options.server_time(); |
| 145 else |
| 146 server_time = creation_time; |
| 142 | 147 |
| 143 net::ParsedCookie pc(cookie_line); | 148 net::ParsedCookie pc(cookie_line); |
| 144 if (!pc.IsValid()) | 149 if (!pc.IsValid()) |
| 145 return; | 150 return; |
| 146 | 151 |
| 147 if (options.exclude_httponly() && pc.IsHttpOnly()) | 152 if (options.exclude_httponly() && pc.IsHttpOnly()) |
| 148 return; | 153 return; |
| 149 | 154 |
| 150 std::string domain_string; | 155 std::string domain_string; |
| 151 if (pc.HasDomain()) | 156 if (pc.HasDomain()) |
| 152 domain_string = pc.Domain(); | 157 domain_string = pc.Domain(); |
| 153 std::string cookie_domain; | 158 std::string cookie_domain; |
| 154 if (!net::cookie_util::GetCookieDomainWithString(url, domain_string, | 159 if (!net::cookie_util::GetCookieDomainWithString(url, domain_string, |
| 155 &cookie_domain)) | 160 &cookie_domain)) |
| 156 return; | 161 return; |
| 157 | 162 |
| 158 std::string cookie_path = net::CanonicalCookie::CanonPath(url, pc); | 163 std::string cookie_path = net::CanonicalCookie::CanonPath(url, pc); |
| 159 std::string mac_key = pc.HasMACKey() ? pc.MACKey() : std::string(); | 164 std::string mac_key = pc.HasMACKey() ? pc.MACKey() : std::string(); |
| 160 std::string mac_algorithm = pc.HasMACAlgorithm() ? | 165 std::string mac_algorithm = pc.HasMACAlgorithm() ? |
| 161 pc.MACAlgorithm() : std::string(); | 166 pc.MACAlgorithm() : std::string(); |
| 162 | 167 |
| 163 base::Time cookie_expires = | 168 base::Time cookie_expires = |
| 164 net::CanonicalCookie::CanonExpiration(pc, creation_time); | 169 net::CanonicalCookie::CanonExpiration(pc, creation_time, server_time); |
| 165 | 170 |
| 166 scoped_ptr<net::CanonicalCookie> cookie( | 171 scoped_ptr<net::CanonicalCookie> cookie( |
| 167 new net::CanonicalCookie(url, pc.Name(), pc.Value(), cookie_domain, | 172 new net::CanonicalCookie(url, pc.Name(), pc.Value(), cookie_domain, |
| 168 cookie_path, mac_key, mac_algorithm, | 173 cookie_path, mac_key, mac_algorithm, |
| 169 creation_time, cookie_expires, | 174 creation_time, cookie_expires, |
| 170 creation_time, pc.IsSecure(), pc.IsHttpOnly())); | 175 creation_time, pc.IsSecure(), pc.IsHttpOnly())); |
| 171 if (cookie.get()) | 176 if (cookie.get()) |
| 172 AddCookie(frame_url, *cookie); | 177 AddCookie(frame_url, *cookie); |
| 173 } | 178 } |
| 174 | 179 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 // collecting cookies per origin in redirect chains. | 265 // collecting cookies per origin in redirect chains. |
| 261 // TODO(markusheintz): A) Change the GetCookiesCount method to prevent | 266 // TODO(markusheintz): A) Change the GetCookiesCount method to prevent |
| 262 // counting cookies multiple times if they are stored in multiple cookie | 267 // counting cookies multiple times if they are stored in multiple cookie |
| 263 // lists. B) Replace the GetCookieFor method call below with: | 268 // lists. B) Replace the GetCookieFor method call below with: |
| 264 // "GetCookiesFor(frame_url.GetOrigin());" | 269 // "GetCookiesFor(frame_url.GetOrigin());" |
| 265 net::CookieList* cookie_list = | 270 net::CookieList* cookie_list = |
| 266 GetCookiesFor(GURL(kGlobalCookieListURL)); | 271 GetCookiesFor(GURL(kGlobalCookieListURL)); |
| 267 DeleteMatchingCookie(cookie, cookie_list); | 272 DeleteMatchingCookie(cookie, cookie_list); |
| 268 cookie_list->push_back(cookie); | 273 cookie_list->push_back(cookie); |
| 269 } | 274 } |
| OLD | NEW |