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 |