Index: net/http/http_stream_factory_impl_job.cc |
diff --git a/net/http/http_stream_factory_impl_job.cc b/net/http/http_stream_factory_impl_job.cc |
index e21556e00678b13c746e9d104b58a0e6ec53b379..0d27c6cd8c01b1a4f83f7a9a11210bc81129b0d4 100644 |
--- a/net/http/http_stream_factory_impl_job.cc |
+++ b/net/http/http_stream_factory_impl_job.cc |
@@ -114,7 +114,10 @@ HttpStreamFactoryImpl::Job::Job(HttpStreamFactoryImpl* stream_factory, |
proxy_ssl_config_(proxy_ssl_config), |
net_log_(BoundNetLog::Make(net_log.net_log(), |
NetLog::SOURCE_HTTP_STREAM_JOB)), |
- ALLOW_THIS_IN_INITIALIZER_LIST(io_callback_(this, &Job::OnIOComplete)), |
+ ALLOW_THIS_IN_INITIALIZER_LIST(old_io_callback_( |
+ this, &Job::OnIOComplete)), |
+ ALLOW_THIS_IN_INITIALIZER_LIST(io_callback_( |
+ base::Bind(&Job::OnIOComplete, base::Unretained(this)))), |
connection_(new ClientSocketHandle), |
session_(session), |
stream_factory_(stream_factory), |
@@ -572,8 +575,7 @@ int HttpStreamFactoryImpl::Job::DoResolveProxy() { |
} |
return session_->proxy_service()->ResolveProxy( |
- request_info_.url, &proxy_info_, &io_callback_, &pac_request_, |
- net_log_); |
+ request_info_.url, &proxy_info_, io_callback_, &pac_request_, net_log_); |
} |
int HttpStreamFactoryImpl::Job::DoResolveProxyComplete(int result) { |
@@ -715,19 +717,10 @@ int HttpStreamFactoryImpl::Job::DoInitConnection() { |
num_streams_); |
} else { |
return InitSocketHandleForHttpRequest( |
- origin_url_, |
- request_info_.extra_headers, |
- request_info_.load_flags, |
- request_info_.priority, |
- session_, |
- proxy_info_, |
- ShouldForceSpdySSL(), |
- want_spdy_over_npn, |
- server_ssl_config_, |
- proxy_ssl_config_, |
- net_log_, |
- connection_.get(), |
- &io_callback_); |
+ origin_url_, request_info_.extra_headers, request_info_.load_flags, |
+ request_info_.priority, session_, proxy_info_, ShouldForceSpdySSL(), |
+ want_spdy_over_npn, server_ssl_config_, proxy_ssl_config_, net_log_, |
+ connection_.get(), io_callback_); |
} |
} |
@@ -956,7 +949,7 @@ int HttpStreamFactoryImpl::Job::DoRestartTunnelAuth() { |
next_state_ = STATE_RESTART_TUNNEL_AUTH_COMPLETE; |
ProxyClientSocket* proxy_socket = |
static_cast<ProxyClientSocket*>(connection_->socket()); |
- return proxy_socket->RestartWithAuth(&io_callback_); |
+ return proxy_socket->RestartWithAuth(&old_io_callback_); |
} |
int HttpStreamFactoryImpl::Job::DoRestartTunnelAuthComplete(int result) { |
@@ -1090,8 +1083,7 @@ int HttpStreamFactoryImpl::Job::ReconsiderProxyAfterError(int error) { |
} |
int rv = session_->proxy_service()->ReconsiderProxyAfterError( |
- request_info_.url, &proxy_info_, &io_callback_, &pac_request_, |
- net_log_); |
+ request_info_.url, &proxy_info_, io_callback_, &pac_request_, net_log_); |
if (rv == OK || rv == ERR_IO_PENDING) { |
// If the error was during connection setup, there is no socket to |
// disconnect. |