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 "net/url_request/url_request_http_job.h" | 5 #include "net/url_request/url_request_http_job.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/base_switches.h" | 9 #include "base/base_switches.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 base::Time response_date; | 748 base::Time response_date; |
749 if (!GetResponseHeaders()->GetDateValue(&response_date)) | 749 if (!GetResponseHeaders()->GetDateValue(&response_date)) |
750 response_date = base::Time(); | 750 response_date = base::Time(); |
751 | 751 |
752 if (!(request_info_.load_flags & LOAD_DO_NOT_SAVE_COOKIES) && | 752 if (!(request_info_.load_flags & LOAD_DO_NOT_SAVE_COOKIES) && |
753 request_->context()->cookie_store()) { | 753 request_->context()->cookie_store()) { |
754 CookieOptions options; | 754 CookieOptions options; |
755 options.set_include_httponly(); | 755 options.set_include_httponly(); |
756 options.set_server_time(response_date); | 756 options.set_server_time(response_date); |
757 | 757 |
758 if (network_delegate() && | |
759 network_delegate()->AreStrictSecureCookiesEnabled()) { | |
760 options.set_enforce_strict_secure(); | |
761 } | |
762 | |
763 // Set all cookies, without waiting for them to be set. Any subsequent read | 758 // Set all cookies, without waiting for them to be set. Any subsequent read |
764 // will see the combined result of all cookie operation. | 759 // will see the combined result of all cookie operation. |
765 const base::StringPiece name("Set-Cookie"); | 760 const base::StringPiece name("Set-Cookie"); |
766 std::string cookie; | 761 std::string cookie; |
767 size_t iter = 0; | 762 size_t iter = 0; |
768 HttpResponseHeaders* headers = GetResponseHeaders(); | 763 HttpResponseHeaders* headers = GetResponseHeaders(); |
769 while (headers->EnumerateHeader(&iter, name, &cookie)) { | 764 while (headers->EnumerateHeader(&iter, name, &cookie)) { |
770 if (cookie.empty() || !CanSetCookie(cookie, &options)) | 765 if (cookie.empty() || !CanSetCookie(cookie, &options)) |
771 continue; | 766 continue; |
772 request_->context()->cookie_store()->SetCookieWithOptionsAsync( | 767 request_->context()->cookie_store()->SetCookieWithOptionsAsync( |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1556 awaiting_callback_ = false; | 1551 awaiting_callback_ = false; |
1557 | 1552 |
1558 // Notify NetworkQualityEstimator. | 1553 // Notify NetworkQualityEstimator. |
1559 NetworkQualityEstimator* network_quality_estimator = | 1554 NetworkQualityEstimator* network_quality_estimator = |
1560 request()->context()->network_quality_estimator(); | 1555 request()->context()->network_quality_estimator(); |
1561 if (network_quality_estimator) | 1556 if (network_quality_estimator) |
1562 network_quality_estimator->NotifyURLRequestDestroyed(*request()); | 1557 network_quality_estimator->NotifyURLRequestDestroyed(*request()); |
1563 } | 1558 } |
1564 | 1559 |
1565 } // namespace net | 1560 } // namespace net |
OLD | NEW |