Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(627)

Side by Side Diff: net/http/http_proxy_client_socket_pool.cc

Issue 8824006: Migrate net/socket/socket.h, net/socket/stream_socket.h to base::Bind(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/http/http_proxy_client_socket_pool.h ('k') | net/http/http_stream_parser.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_proxy_client_socket_pool.h" 5 #include "net/http/http_proxy_client_socket_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 HostResolver* host_resolver, 77 HostResolver* host_resolver,
78 Delegate* delegate, 78 Delegate* delegate,
79 NetLog* net_log) 79 NetLog* net_log)
80 : ConnectJob(group_name, timeout_duration, delegate, 80 : ConnectJob(group_name, timeout_duration, delegate,
81 BoundNetLog::Make(net_log, NetLog::SOURCE_CONNECT_JOB)), 81 BoundNetLog::Make(net_log, NetLog::SOURCE_CONNECT_JOB)),
82 params_(params), 82 params_(params),
83 transport_pool_(transport_pool), 83 transport_pool_(transport_pool),
84 ssl_pool_(ssl_pool), 84 ssl_pool_(ssl_pool),
85 resolver_(host_resolver), 85 resolver_(host_resolver),
86 ALLOW_THIS_IN_INITIALIZER_LIST( 86 ALLOW_THIS_IN_INITIALIZER_LIST(
87 callback_(this, &HttpProxyConnectJob::OnIOComplete)), 87 callback_(base::Bind(&HttpProxyConnectJob::OnIOComplete,
88 base::Unretained(this)))),
89 ALLOW_THIS_IN_INITIALIZER_LIST(
90 callback_old_(this, &HttpProxyConnectJob::OnIOComplete)),
88 using_spdy_(false) { 91 using_spdy_(false) {
89 } 92 }
90 93
91 HttpProxyConnectJob::~HttpProxyConnectJob() {} 94 HttpProxyConnectJob::~HttpProxyConnectJob() {}
92 95
93 LoadState HttpProxyConnectJob::GetLoadState() const { 96 LoadState HttpProxyConnectJob::GetLoadState() const {
94 switch (next_state_) { 97 switch (next_state_) {
95 case STATE_TCP_CONNECT: 98 case STATE_TCP_CONNECT:
96 case STATE_TCP_CONNECT_COMPLETE: 99 case STATE_TCP_CONNECT_COMPLETE:
97 case STATE_SSL_CONNECT: 100 case STATE_SSL_CONNECT:
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 return rv; 170 return rv;
168 } 171 }
169 172
170 int HttpProxyConnectJob::DoTransportConnect() { 173 int HttpProxyConnectJob::DoTransportConnect() {
171 next_state_ = STATE_TCP_CONNECT_COMPLETE; 174 next_state_ = STATE_TCP_CONNECT_COMPLETE;
172 transport_socket_handle_.reset(new ClientSocketHandle()); 175 transport_socket_handle_.reset(new ClientSocketHandle());
173 return transport_socket_handle_->Init( 176 return transport_socket_handle_->Init(
174 group_name(), 177 group_name(),
175 params_->transport_params(), 178 params_->transport_params(),
176 params_->transport_params()->destination().priority(), 179 params_->transport_params()->destination().priority(),
177 &callback_, 180 &callback_old_,
178 transport_pool_, 181 transport_pool_,
179 net_log()); 182 net_log());
180 } 183 }
181 184
182 int HttpProxyConnectJob::DoTransportConnectComplete(int result) { 185 int HttpProxyConnectJob::DoTransportConnectComplete(int result) {
183 if (result != OK) 186 if (result != OK)
184 return ERR_PROXY_CONNECTION_FAILED; 187 return ERR_PROXY_CONNECTION_FAILED;
185 188
186 // Reset the timer to just the length of time allowed for HttpProxy handshake 189 // Reset the timer to just the length of time allowed for HttpProxy handshake
187 // so that a fast TCP connection plus a slow HttpProxy failure doesn't take 190 // so that a fast TCP connection plus a slow HttpProxy failure doesn't take
(...skipping 13 matching lines...) Expand all
201 using_spdy_ = true; 204 using_spdy_ = true;
202 next_state_ = STATE_SPDY_PROXY_CREATE_STREAM; 205 next_state_ = STATE_SPDY_PROXY_CREATE_STREAM;
203 return OK; 206 return OK;
204 } 207 }
205 } 208 }
206 next_state_ = STATE_SSL_CONNECT_COMPLETE; 209 next_state_ = STATE_SSL_CONNECT_COMPLETE;
207 transport_socket_handle_.reset(new ClientSocketHandle()); 210 transport_socket_handle_.reset(new ClientSocketHandle());
208 return transport_socket_handle_->Init( 211 return transport_socket_handle_->Init(
209 group_name(), params_->ssl_params(), 212 group_name(), params_->ssl_params(),
210 params_->ssl_params()->transport_params()->destination().priority(), 213 params_->ssl_params()->transport_params()->destination().priority(),
211 &callback_, ssl_pool_, net_log()); 214 &callback_old_, ssl_pool_, net_log());
212 } 215 }
213 216
214 int HttpProxyConnectJob::DoSSLConnectComplete(int result) { 217 int HttpProxyConnectJob::DoSSLConnectComplete(int result) {
215 if (result == ERR_SSL_CLIENT_AUTH_CERT_NEEDED) { 218 if (result == ERR_SSL_CLIENT_AUTH_CERT_NEEDED) {
216 error_response_info_ = transport_socket_handle_->ssl_error_response_info(); 219 error_response_info_ = transport_socket_handle_->ssl_error_response_info();
217 DCHECK(error_response_info_.cert_request_info.get()); 220 DCHECK(error_response_info_.cert_request_info.get());
218 error_response_info_.cert_request_info->is_proxy = true; 221 error_response_info_.cert_request_info->is_proxy = true;
219 return result; 222 return result;
220 } 223 }
221 if (IsCertificateError(result)) { 224 if (IsCertificateError(result)) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 new HttpProxyClientSocket(transport_socket_handle_.release(), 267 new HttpProxyClientSocket(transport_socket_handle_.release(),
265 params_->request_url(), 268 params_->request_url(),
266 params_->user_agent(), 269 params_->user_agent(),
267 params_->endpoint(), 270 params_->endpoint(),
268 proxy_server, 271 proxy_server,
269 params_->http_auth_cache(), 272 params_->http_auth_cache(),
270 params_->http_auth_handler_factory(), 273 params_->http_auth_handler_factory(),
271 params_->tunnel(), 274 params_->tunnel(),
272 using_spdy_, 275 using_spdy_,
273 params_->ssl_params() != NULL)); 276 params_->ssl_params() != NULL));
274 return transport_socket_->Connect(&callback_); 277 return transport_socket_->Connect(callback_);
275 } 278 }
276 279
277 int HttpProxyConnectJob::DoHttpProxyConnectComplete(int result) { 280 int HttpProxyConnectJob::DoHttpProxyConnectComplete(int result) {
278 if (result == OK || result == ERR_PROXY_AUTH_REQUESTED || 281 if (result == OK || result == ERR_PROXY_AUTH_REQUESTED ||
279 result == ERR_HTTPS_PROXY_TUNNEL_RESPONSE) { 282 result == ERR_HTTPS_PROXY_TUNNEL_RESPONSE) {
280 set_socket(transport_socket_.release()); 283 set_socket(transport_socket_.release());
281 } 284 }
282 285
283 return result; 286 return result;
284 } 287 }
(...skipping 20 matching lines...) Expand all
305 pair, transport_socket_handle_.release(), 308 pair, transport_socket_handle_.release(),
306 net_log(), OK, &spdy_session, /*using_ssl_*/ true); 309 net_log(), OK, &spdy_session, /*using_ssl_*/ true);
307 if (rv < 0) 310 if (rv < 0)
308 return rv; 311 return rv;
309 } 312 }
310 313
311 next_state_ = STATE_SPDY_PROXY_CREATE_STREAM_COMPLETE; 314 next_state_ = STATE_SPDY_PROXY_CREATE_STREAM_COMPLETE;
312 return spdy_session->CreateStream(params_->request_url(), 315 return spdy_session->CreateStream(params_->request_url(),
313 params_->destination().priority(), 316 params_->destination().priority(),
314 &spdy_stream_, spdy_session->net_log(), 317 &spdy_stream_, spdy_session->net_log(),
315 &callback_); 318 &callback_old_);
316 } 319 }
317 320
318 int HttpProxyConnectJob::DoSpdyProxyCreateStreamComplete(int result) { 321 int HttpProxyConnectJob::DoSpdyProxyCreateStreamComplete(int result) {
319 if (result < 0) 322 if (result < 0)
320 return result; 323 return result;
321 324
322 next_state_ = STATE_HTTP_PROXY_CONNECT_COMPLETE; 325 next_state_ = STATE_HTTP_PROXY_CONNECT_COMPLETE;
323 transport_socket_.reset( 326 transport_socket_.reset(
324 new SpdyProxyClientSocket(spdy_stream_, 327 new SpdyProxyClientSocket(spdy_stream_,
325 params_->user_agent(), 328 params_->user_agent(),
326 params_->endpoint(), 329 params_->endpoint(),
327 params_->request_url(), 330 params_->request_url(),
328 params_->destination().host_port_pair(), 331 params_->destination().host_port_pair(),
329 params_->http_auth_cache(), 332 params_->http_auth_cache(),
330 params_->http_auth_handler_factory())); 333 params_->http_auth_handler_factory()));
331 return transport_socket_->Connect(&callback_); 334 return transport_socket_->Connect(callback_);
332 } 335 }
333 336
334 int HttpProxyConnectJob::ConnectInternal() { 337 int HttpProxyConnectJob::ConnectInternal() {
335 if (params_->transport_params()) 338 if (params_->transport_params())
336 next_state_ = STATE_TCP_CONNECT; 339 next_state_ = STATE_TCP_CONNECT;
337 else 340 else
338 next_state_ = STATE_SSL_CONNECT; 341 next_state_ = STATE_SSL_CONNECT;
339 return DoLoop(OK); 342 return DoLoop(OK);
340 } 343 }
341 344
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 return base_.histograms(); 511 return base_.histograms();
509 } 512 }
510 513
511 bool HttpProxyClientSocketPool::CloseOneIdleConnection() { 514 bool HttpProxyClientSocketPool::CloseOneIdleConnection() {
512 if (base_.CloseOneIdleSocket()) 515 if (base_.CloseOneIdleSocket())
513 return true; 516 return true;
514 return base_.CloseOneIdleConnectionInLayeredPool(); 517 return base_.CloseOneIdleConnectionInLayeredPool();
515 } 518 }
516 519
517 } // namespace net 520 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_proxy_client_socket_pool.h ('k') | net/http/http_stream_parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698