| 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 "jingle/glue/proxy_resolving_client_socket.h" | 5 #include "jingle/glue/proxy_resolving_client_socket.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 net::NetLogSourceType::SOCKET)), | 50 net::NetLogSourceType::SOCKET)), |
| 51 weak_factory_(this) { | 51 weak_factory_(this) { |
| 52 DCHECK(request_context_getter.get()); | 52 DCHECK(request_context_getter.get()); |
| 53 net::URLRequestContext* request_context = | 53 net::URLRequestContext* request_context = |
| 54 request_context_getter->GetURLRequestContext(); | 54 request_context_getter->GetURLRequestContext(); |
| 55 DCHECK(request_context); | 55 DCHECK(request_context); |
| 56 DCHECK(!dest_host_port_pair_.host().empty()); | 56 DCHECK(!dest_host_port_pair_.host().empty()); |
| 57 DCHECK_GT(dest_host_port_pair_.port(), 0); | 57 DCHECK_GT(dest_host_port_pair_.port(), 0); |
| 58 DCHECK(proxy_url_.is_valid()); | 58 DCHECK(proxy_url_.is_valid()); |
| 59 | 59 |
| 60 net::HttpNetworkSession::Params session_params; | 60 net::HttpNetworkSession::Context session_context; |
| 61 session_params.client_socket_factory = socket_factory; | 61 session_context.client_socket_factory = socket_factory; |
| 62 session_params.host_resolver = request_context->host_resolver(); | 62 session_context.host_resolver = request_context->host_resolver(); |
| 63 session_params.cert_verifier = request_context->cert_verifier(); | 63 session_context.cert_verifier = request_context->cert_verifier(); |
| 64 session_params.transport_security_state = | 64 session_context.transport_security_state = |
| 65 request_context->transport_security_state(); | 65 request_context->transport_security_state(); |
| 66 session_params.cert_transparency_verifier = | 66 session_context.cert_transparency_verifier = |
| 67 request_context->cert_transparency_verifier(); | 67 request_context->cert_transparency_verifier(); |
| 68 session_params.ct_policy_enforcer = request_context->ct_policy_enforcer(); | 68 session_context.ct_policy_enforcer = request_context->ct_policy_enforcer(); |
| 69 // TODO(rkn): This is NULL because ChannelIDService is not thread safe. | 69 // TODO(rkn): This is NULL because ChannelIDService is not thread safe. |
| 70 session_params.channel_id_service = NULL; | 70 // TODO(mmenke): The above comment makes no sense, as not a single one of |
| 71 session_params.proxy_service = request_context->proxy_service(); | 71 // these classes is thread safe. Figure out if the comment's wrong, or if this |
| 72 session_params.ssl_config_service = request_context->ssl_config_service(); | 72 // entire class is badly broken. |
| 73 session_params.http_auth_handler_factory = | 73 session_context.channel_id_service = NULL; |
| 74 session_context.proxy_service = request_context->proxy_service(); |
| 75 session_context.ssl_config_service = request_context->ssl_config_service(); |
| 76 session_context.http_auth_handler_factory = |
| 74 request_context->http_auth_handler_factory(); | 77 request_context->http_auth_handler_factory(); |
| 75 session_params.http_server_properties = | 78 session_context.http_server_properties = |
| 76 request_context->http_server_properties(); | 79 request_context->http_server_properties(); |
| 77 session_params.net_log = request_context->net_log(); | 80 session_context.net_log = request_context->net_log(); |
| 78 | 81 |
| 79 const net::HttpNetworkSession::Params* reference_params = | 82 const net::HttpNetworkSession::Params* reference_params = |
| 80 request_context->GetNetworkSessionParams(); | 83 request_context->GetNetworkSessionParams(); |
| 84 net::HttpNetworkSession::Params session_params; |
| 81 if (reference_params) { | 85 if (reference_params) { |
| 82 // TODO(mmenke): Just copying specific parameters seems highly regression | 86 // TODO(mmenke): Just copying specific parameters seems highly regression |
| 83 // prone. Should have a better way to do this. | 87 // prone. Should have a better way to do this. |
| 84 session_params.host_mapping_rules = reference_params->host_mapping_rules; | 88 session_params.host_mapping_rules = reference_params->host_mapping_rules; |
| 85 session_params.ignore_certificate_errors = | 89 session_params.ignore_certificate_errors = |
| 86 reference_params->ignore_certificate_errors; | 90 reference_params->ignore_certificate_errors; |
| 87 session_params.testing_fixed_http_port = | 91 session_params.testing_fixed_http_port = |
| 88 reference_params->testing_fixed_http_port; | 92 reference_params->testing_fixed_http_port; |
| 89 session_params.testing_fixed_https_port = | 93 session_params.testing_fixed_https_port = |
| 90 reference_params->testing_fixed_https_port; | 94 reference_params->testing_fixed_https_port; |
| 91 session_params.enable_http2 = reference_params->enable_http2; | 95 session_params.enable_http2 = reference_params->enable_http2; |
| 92 session_params.enable_http2_alternative_service = | 96 session_params.enable_http2_alternative_service = |
| 93 reference_params->enable_http2_alternative_service; | 97 reference_params->enable_http2_alternative_service; |
| 94 } | 98 } |
| 95 | 99 |
| 96 network_session_.reset(new net::HttpNetworkSession(session_params)); | 100 network_session_.reset( |
| 101 new net::HttpNetworkSession(session_params, session_context)); |
| 97 | 102 |
| 98 net::HttpAuthCache* other_auth_cache = | 103 net::HttpAuthCache* other_auth_cache = |
| 99 request_context->http_transaction_factory() | 104 request_context->http_transaction_factory() |
| 100 ->GetSession() | 105 ->GetSession() |
| 101 ->http_auth_cache(); | 106 ->http_auth_cache(); |
| 102 DCHECK(other_auth_cache); | 107 DCHECK(other_auth_cache); |
| 103 network_session_->http_auth_cache()->UpdateAllFrom(*other_auth_cache); | 108 network_session_->http_auth_cache()->UpdateAllFrom(*other_auth_cache); |
| 104 } | 109 } |
| 105 | 110 |
| 106 ProxyResolvingClientSocket::~ProxyResolvingClientSocket() { | 111 ProxyResolvingClientSocket::~ProxyResolvingClientSocket() { |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 return 0; | 434 return 0; |
| 430 } | 435 } |
| 431 | 436 |
| 432 void ProxyResolvingClientSocket::CloseTransportSocket() { | 437 void ProxyResolvingClientSocket::CloseTransportSocket() { |
| 433 if (transport_.get() && transport_->socket()) | 438 if (transport_.get() && transport_->socket()) |
| 434 transport_->socket()->Disconnect(); | 439 transport_->socket()->Disconnect(); |
| 435 transport_.reset(); | 440 transport_.reset(); |
| 436 } | 441 } |
| 437 | 442 |
| 438 } // namespace jingle_glue | 443 } // namespace jingle_glue |
| OLD | NEW |