| 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 // Portions of this code based on Mozilla: | 5 // Portions of this code based on Mozilla: |
| 6 // (netwerk/cookie/src/nsCookieService.cpp) | 6 // (netwerk/cookie/src/nsCookieService.cpp) |
| 7 /* ***** BEGIN LICENSE BLOCK ***** | 7 /* ***** BEGIN LICENSE BLOCK ***** |
| 8 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 8 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
| 9 * | 9 * |
| 10 * The contents of this file are subject to the Mozilla Public License Version | 10 * The contents of this file are subject to the Mozilla Public License Version |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 | 212 |
| 213 std::string cookie_domain; | 213 std::string cookie_domain; |
| 214 if (!GetCookieDomain(url, parsed_cookie, &cookie_domain)) { | 214 if (!GetCookieDomain(url, parsed_cookie, &cookie_domain)) { |
| 215 VLOG(kVlogSetCookies) << "Create() failed to get a cookie domain"; | 215 VLOG(kVlogSetCookies) << "Create() failed to get a cookie domain"; |
| 216 return nullptr; | 216 return nullptr; |
| 217 } | 217 } |
| 218 | 218 |
| 219 // Per 3.2.1 of "Deprecate modification of 'secure' cookies from non-secure | 219 // Per 3.2.1 of "Deprecate modification of 'secure' cookies from non-secure |
| 220 // origins", if the cookie's "secure-only-flag" is "true" and the requesting | 220 // origins", if the cookie's "secure-only-flag" is "true" and the requesting |
| 221 // URL does not have a secure scheme, the cookie should be thrown away. | 221 // URL does not have a secure scheme, the cookie should be thrown away. |
| 222 // https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone | 222 // https://tools.ietf.org/html/draft-ietf-httpbis-cookie-alone |
| 223 if (options.enforce_strict_secure() && parsed_cookie.IsSecure() && | 223 if (options.enforce_strict_secure() && parsed_cookie.IsSecure() && |
| 224 !url.SchemeIsCryptographic()) { | 224 !url.SchemeIsCryptographic()) { |
| 225 VLOG(kVlogSetCookies) | 225 VLOG(kVlogSetCookies) |
| 226 << "Create() is trying to create a secure cookie from an insecure URL"; | 226 << "Create() is trying to create a secure cookie from an insecure URL"; |
| 227 return nullptr; | 227 return nullptr; |
| 228 } | 228 } |
| 229 | 229 |
| 230 std::string cookie_path = CanonicalCookie::CanonPath(url, parsed_cookie); | 230 std::string cookie_path = CanonicalCookie::CanonPath(url, parsed_cookie); |
| 231 Time server_time(creation_time); | 231 Time server_time(creation_time); |
| 232 if (options.has_server_time()) | 232 if (options.has_server_time()) |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 if (prefix == CanonicalCookie::COOKIE_PREFIX_SECURE) | 512 if (prefix == CanonicalCookie::COOKIE_PREFIX_SECURE) |
| 513 return parsed_cookie.IsSecure() && url.SchemeIsCryptographic(); | 513 return parsed_cookie.IsSecure() && url.SchemeIsCryptographic(); |
| 514 if (prefix == CanonicalCookie::COOKIE_PREFIX_HOST) { | 514 if (prefix == CanonicalCookie::COOKIE_PREFIX_HOST) { |
| 515 return parsed_cookie.IsSecure() && url.SchemeIsCryptographic() && | 515 return parsed_cookie.IsSecure() && url.SchemeIsCryptographic() && |
| 516 !parsed_cookie.HasDomain() && parsed_cookie.Path() == "/"; | 516 !parsed_cookie.HasDomain() && parsed_cookie.Path() == "/"; |
| 517 } | 517 } |
| 518 return true; | 518 return true; |
| 519 } | 519 } |
| 520 | 520 |
| 521 } // namespace net | 521 } // namespace net |
| OLD | NEW |