| 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 | 44 |
| 45 #include "net/cookies/canonical_cookie.h" | 45 #include "net/cookies/canonical_cookie.h" |
| 46 | 46 |
| 47 #include "base/basictypes.h" | 47 #include "base/basictypes.h" |
| 48 #include "base/format_macros.h" | 48 #include "base/format_macros.h" |
| 49 #include "base/logging.h" | 49 #include "base/logging.h" |
| 50 #include "base/strings/stringprintf.h" | 50 #include "base/strings/stringprintf.h" |
| 51 #include "net/cookies/cookie_util.h" | 51 #include "net/cookies/cookie_util.h" |
| 52 #include "net/cookies/parsed_cookie.h" | 52 #include "net/cookies/parsed_cookie.h" |
| 53 #include "url/gurl.h" | 53 #include "url/gurl.h" |
| 54 #include "url/origin.h" |
| 54 #include "url/url_canon.h" | 55 #include "url/url_canon.h" |
| 55 | 56 |
| 56 using base::Time; | 57 using base::Time; |
| 57 using base::TimeDelta; | 58 using base::TimeDelta; |
| 58 | 59 |
| 59 namespace net { | 60 namespace net { |
| 60 | 61 |
| 61 namespace { | 62 namespace { |
| 62 | 63 |
| 63 const int kVlogSetCookies = 7; | 64 const int kVlogSetCookies = 7; |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 if (IsSecure() && !url.SchemeIsCryptographic()) | 398 if (IsSecure() && !url.SchemeIsCryptographic()) |
| 398 return false; | 399 return false; |
| 399 // Don't include cookies for requests that don't apply to the cookie domain. | 400 // Don't include cookies for requests that don't apply to the cookie domain. |
| 400 if (!IsDomainMatch(url.host())) | 401 if (!IsDomainMatch(url.host())) |
| 401 return false; | 402 return false; |
| 402 // Don't include cookies for requests with a url path that does not path | 403 // Don't include cookies for requests with a url path that does not path |
| 403 // match the cookie-path. | 404 // match the cookie-path. |
| 404 if (!IsOnPath(url.path())) | 405 if (!IsOnPath(url.path())) |
| 405 return false; | 406 return false; |
| 406 | 407 |
| 407 // Include first-party-only cookies iff |options| tells us to include all of | 408 // Include first-party-only cookies if one of the following is true: |
| 408 // them, or if a first-party URL is set and its origin matches the origin of | 409 // |
| 409 // |url|. | 410 // 1. |options| tells us to include all of them |
| 410 if (IsFirstPartyOnly() && !options.include_first_party_only() && | 411 // 2. A first-party URL is set and its origin matches the origin of |url|, |
| 411 options.first_party_url().GetOrigin() != url.GetOrigin()) { | 412 // _and_ that first-party URL is same-origin with the requestor origin. |
| 412 return false; | 413 if (IsFirstPartyOnly() && !options.include_first_party_only()) { |
| 414 url::Origin first_party(options.first_party_url()); |
| 415 url::Origin request(url); |
| 416 if (!first_party.IsSameOriginWith(request) || !options.requestor_origin().Is
SameOriginWith(request)) { |
| 417 return false; |
| 418 } |
| 413 } | 419 } |
| 414 | 420 |
| 415 return true; | 421 return true; |
| 416 } | 422 } |
| 417 | 423 |
| 418 std::string CanonicalCookie::DebugString() const { | 424 std::string CanonicalCookie::DebugString() const { |
| 419 return base::StringPrintf( | 425 return base::StringPrintf( |
| 420 "name: %s value: %s domain: %s path: %s creation: %" | 426 "name: %s value: %s domain: %s path: %s creation: %" |
| 421 PRId64, | 427 PRId64, |
| 422 name_.c_str(), value_.c_str(), | 428 name_.c_str(), value_.c_str(), |
| (...skipping 30 matching lines...) Expand all Loading... |
| 453 if (IsSecure() != other.IsSecure()) | 459 if (IsSecure() != other.IsSecure()) |
| 454 return IsSecure(); | 460 return IsSecure(); |
| 455 | 461 |
| 456 if (IsHttpOnly() != other.IsHttpOnly()) | 462 if (IsHttpOnly() != other.IsHttpOnly()) |
| 457 return IsHttpOnly(); | 463 return IsHttpOnly(); |
| 458 | 464 |
| 459 return Priority() < other.Priority(); | 465 return Priority() < other.Priority(); |
| 460 } | 466 } |
| 461 | 467 |
| 462 } // namespace net | 468 } // namespace net |
| OLD | NEW |