| 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/http/http_stream_factory_impl_job.h" | 5 #include "net/http/http_stream_factory_impl_job.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 GURL::Replacements replacements; | 784 GURL::Replacements replacements; |
| 785 // new_port needs to be in scope here because GURL::Replacements references | 785 // new_port needs to be in scope here because GURL::Replacements references |
| 786 // the memory contained by it directly. | 786 // the memory contained by it directly. |
| 787 const std::string new_port = base::UintToString(alternative_service_.port); | 787 const std::string new_port = base::UintToString(alternative_service_.port); |
| 788 replacements.SetSchemeStr("https"); | 788 replacements.SetSchemeStr("https"); |
| 789 replacements.SetPortStr(new_port); | 789 replacements.SetPortStr(new_port); |
| 790 url_for_proxy = url_for_proxy.ReplaceComponents(replacements); | 790 url_for_proxy = url_for_proxy.ReplaceComponents(replacements); |
| 791 } | 791 } |
| 792 | 792 |
| 793 return session_->proxy_service()->ResolveProxy( | 793 return session_->proxy_service()->ResolveProxy( |
| 794 url_for_proxy, request_info_.method, request_info_.load_flags, | 794 url_for_proxy, request_info_.method, &proxy_info_, io_callback_, |
| 795 &proxy_info_, io_callback_, &pac_request_, | 795 &pac_request_, session_->params().proxy_delegate, net_log_); |
| 796 session_->params().proxy_delegate, net_log_); | |
| 797 } | 796 } |
| 798 | 797 |
| 799 int HttpStreamFactoryImpl::Job::DoResolveProxyComplete(int result) { | 798 int HttpStreamFactoryImpl::Job::DoResolveProxyComplete(int result) { |
| 800 pac_request_ = NULL; | 799 pac_request_ = NULL; |
| 801 | 800 |
| 802 if (result == OK) { | 801 if (result == OK) { |
| 803 // Remove unsupported proxies from the list. | 802 // Remove unsupported proxies from the list. |
| 804 int supported_proxies = | 803 int supported_proxies = |
| 805 ProxyServer::SCHEME_DIRECT | ProxyServer::SCHEME_HTTP | | 804 ProxyServer::SCHEME_DIRECT | ProxyServer::SCHEME_HTTP | |
| 806 ProxyServer::SCHEME_HTTPS | ProxyServer::SCHEME_SOCKS4 | | 805 ProxyServer::SCHEME_HTTPS | ProxyServer::SCHEME_SOCKS4 | |
| (...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1527 | 1526 |
| 1528 if (request_info_.load_flags & LOAD_BYPASS_PROXY) | 1527 if (request_info_.load_flags & LOAD_BYPASS_PROXY) |
| 1529 return error; | 1528 return error; |
| 1530 | 1529 |
| 1531 if (proxy_info_.is_https() && proxy_ssl_config_.send_client_cert) { | 1530 if (proxy_info_.is_https() && proxy_ssl_config_.send_client_cert) { |
| 1532 session_->ssl_client_auth_cache()->Remove( | 1531 session_->ssl_client_auth_cache()->Remove( |
| 1533 proxy_info_.proxy_server().host_port_pair()); | 1532 proxy_info_.proxy_server().host_port_pair()); |
| 1534 } | 1533 } |
| 1535 | 1534 |
| 1536 int rv = session_->proxy_service()->ReconsiderProxyAfterError( | 1535 int rv = session_->proxy_service()->ReconsiderProxyAfterError( |
| 1537 request_info_.url, request_info_.method, request_info_.load_flags, error, | 1536 request_info_.url, request_info_.method, error, &proxy_info_, |
| 1538 &proxy_info_, io_callback_, &pac_request_, | 1537 io_callback_, &pac_request_, session_->params().proxy_delegate, net_log_); |
| 1539 session_->params().proxy_delegate, net_log_); | |
| 1540 if (rv == OK || rv == ERR_IO_PENDING) { | 1538 if (rv == OK || rv == ERR_IO_PENDING) { |
| 1541 // If the error was during connection setup, there is no socket to | 1539 // If the error was during connection setup, there is no socket to |
| 1542 // disconnect. | 1540 // disconnect. |
| 1543 if (connection_->socket()) | 1541 if (connection_->socket()) |
| 1544 connection_->socket()->Disconnect(); | 1542 connection_->socket()->Disconnect(); |
| 1545 connection_->Reset(); | 1543 connection_->Reset(); |
| 1546 delegate_->RemoveRequestFromSpdySessionRequestMapForJob(this); | 1544 delegate_->RemoveRequestFromSpdySessionRequestMapForJob(this); |
| 1547 next_state_ = STATE_RESOLVE_PROXY_COMPLETE; | 1545 next_state_ = STATE_RESOLVE_PROXY_COMPLETE; |
| 1548 } else { | 1546 } else { |
| 1549 // If ReconsiderProxyAfterError() failed synchronously, it means | 1547 // If ReconsiderProxyAfterError() failed synchronously, it means |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1666 | 1664 |
| 1667 ConnectionAttempts socket_attempts = connection_->connection_attempts(); | 1665 ConnectionAttempts socket_attempts = connection_->connection_attempts(); |
| 1668 if (connection_->socket()) { | 1666 if (connection_->socket()) { |
| 1669 connection_->socket()->GetConnectionAttempts(&socket_attempts); | 1667 connection_->socket()->GetConnectionAttempts(&socket_attempts); |
| 1670 } | 1668 } |
| 1671 | 1669 |
| 1672 delegate_->AddConnectionAttemptsToRequest(this, socket_attempts); | 1670 delegate_->AddConnectionAttemptsToRequest(this, socket_attempts); |
| 1673 } | 1671 } |
| 1674 | 1672 |
| 1675 } // namespace net | 1673 } // namespace net |
| OLD | NEW |