| Index: net/http/http_proxy_client_socket_pool.cc
|
| ===================================================================
|
| --- net/http/http_proxy_client_socket_pool.cc (revision 120367)
|
| +++ net/http/http_proxy_client_socket_pool.cc (working copy)
|
| @@ -28,15 +28,6 @@
|
|
|
| namespace net {
|
|
|
| -namespace {
|
| -
|
| -std::string GetProxyUrl(const scoped_refptr<HttpProxySocketParams>& params) {
|
| - return (params->ssl_params() != NULL ? "https://" : "http://")
|
| - + params->destination().host_port_pair().ToString();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| HttpProxySocketParams::HttpProxySocketParams(
|
| const scoped_refptr<TransportSocketParams>& transport_params,
|
| const scoped_refptr<SSLSocketParams>& ssl_params,
|
| @@ -46,8 +37,7 @@
|
| HttpAuthCache* http_auth_cache,
|
| HttpAuthHandlerFactory* http_auth_handler_factory,
|
| SpdySessionPool* spdy_session_pool,
|
| - bool tunnel,
|
| - TunnelAuthCallback auth_needed_callback)
|
| + bool tunnel)
|
| : transport_params_(transport_params),
|
| ssl_params_(ssl_params),
|
| spdy_session_pool_(spdy_session_pool),
|
| @@ -56,8 +46,7 @@
|
| endpoint_(endpoint),
|
| http_auth_cache_(tunnel ? http_auth_cache : NULL),
|
| http_auth_handler_factory_(tunnel ? http_auth_handler_factory : NULL),
|
| - tunnel_(tunnel),
|
| - auth_needed_callback_(auth_needed_callback) {
|
| + tunnel_(tunnel) {
|
| DCHECK((transport_params == NULL && ssl_params != NULL) ||
|
| (transport_params != NULL && ssl_params == NULL));
|
| if (transport_params_)
|
| @@ -98,14 +87,7 @@
|
| callback_(base::Bind(&HttpProxyConnectJob::OnIOComplete,
|
| base::Unretained(this)))),
|
| using_spdy_(false),
|
| - protocol_negotiated_(SSLClientSocket::kProtoUnknown),
|
| - auth_(params->tunnel() ?
|
| - new HttpAuthController(HttpAuth::AUTH_PROXY,
|
| - GURL(GetProxyUrl(params_)),
|
| - params->http_auth_cache(),
|
| - params->http_auth_handler_factory())
|
| - : NULL),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(ptr_factory_(this)) {
|
| + protocol_negotiated_(SSLClientSocket::kProtoUnknown) {
|
| }
|
|
|
| HttpProxyConnectJob::~HttpProxyConnectJob() {}
|
| @@ -121,8 +103,6 @@
|
| case STATE_HTTP_PROXY_CONNECT_COMPLETE:
|
| case STATE_SPDY_PROXY_CREATE_STREAM:
|
| case STATE_SPDY_PROXY_CREATE_STREAM_COMPLETE:
|
| - case STATE_RESTART_WITH_AUTH:
|
| - case STATE_RESTART_WITH_AUTH_COMPLETE:
|
| return LOAD_STATE_ESTABLISHING_PROXY_TUNNEL;
|
| default:
|
| NOTREACHED();
|
| @@ -179,13 +159,6 @@
|
| case STATE_SPDY_PROXY_CREATE_STREAM_COMPLETE:
|
| rv = DoSpdyProxyCreateStreamComplete(rv);
|
| break;
|
| - case STATE_RESTART_WITH_AUTH:
|
| - DCHECK_EQ(OK, rv);
|
| - rv = DoRestartWithAuth();
|
| - break;
|
| - case STATE_RESTART_WITH_AUTH_COMPLETE:
|
| - rv = DoRestartWithAuthComplete(rv);
|
| - break;
|
| default:
|
| NOTREACHED() << "bad state";
|
| rv = ERR_FAILED;
|
| @@ -293,7 +266,8 @@
|
| params_->user_agent(),
|
| params_->endpoint(),
|
| proxy_server,
|
| - auth_,
|
| + params_->http_auth_cache(),
|
| + params_->http_auth_handler_factory(),
|
| params_->tunnel(),
|
| using_spdy_,
|
| protocol_negotiated_,
|
| @@ -301,54 +275,8 @@
|
| return transport_socket_->Connect(callback_);
|
| }
|
|
|
| -void HttpProxyConnectJob::HandleProxyAuthChallenge() {
|
| - next_state_ = STATE_RESTART_WITH_AUTH;
|
| - params_->auth_needed_callback().Run(
|
| - *transport_socket_->GetConnectResponseInfo(),
|
| - transport_socket_->GetAuthController(),
|
| - callback_);
|
| -}
|
| -
|
| -int HttpProxyConnectJob::DoRestartWithAuth() {
|
| - // If no auth was added to the controller, then we should abort.
|
| - next_state_ = STATE_RESTART_WITH_AUTH_COMPLETE;
|
| - if (!transport_socket_->GetAuthController()->HaveAuth()) {
|
| - return ERR_PROXY_AUTH_REQUESTED;
|
| - }
|
| -
|
| - return transport_socket_->RestartWithAuth(callback_);
|
| -}
|
| -
|
| -int HttpProxyConnectJob::DoRestartWithAuthComplete(int result) {
|
| - if (result != OK) {
|
| - if (result == ERR_NO_KEEP_ALIVE_ON_AUTH_RESTART) {
|
| - next_state_ = params_->transport_params() ?
|
| - STATE_TCP_CONNECT : STATE_SSL_CONNECT;
|
| - return OK;
|
| - }
|
| - if (result == ERR_PROXY_AUTH_REQUESTED ||
|
| - result == ERR_HTTPS_PROXY_TUNNEL_RESPONSE) {
|
| - set_socket(transport_socket_.release());
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - next_state_ = STATE_HTTP_PROXY_CONNECT_COMPLETE;
|
| - return OK;
|
| -}
|
| -
|
| int HttpProxyConnectJob::DoHttpProxyConnectComplete(int result) {
|
| - // Handle a proxy auth challenge by asynchronously invoking the callback.
|
| - // We do this asynchronously so that the caller is notified of job
|
| - // completion only via NotifyDelegateOfCompletion.
|
| - if (result == ERR_PROXY_AUTH_REQUESTED) {
|
| - MessageLoop::current()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&HttpProxyConnectJob::HandleProxyAuthChallenge,
|
| - ptr_factory_.GetWeakPtr()));
|
| - return ERR_IO_PENDING;
|
| - }
|
| - if (result == OK ||
|
| + if (result == OK || result == ERR_PROXY_AUTH_REQUESTED ||
|
| result == ERR_HTTPS_PROXY_TUNNEL_RESPONSE) {
|
| set_socket(transport_socket_.release());
|
| }
|
| @@ -398,7 +326,8 @@
|
| params_->endpoint(),
|
| params_->request_url(),
|
| params_->destination().host_port_pair(),
|
| - auth_));
|
| + params_->http_auth_cache(),
|
| + params_->http_auth_handler_factory()));
|
| return transport_socket_->Connect(callback_);
|
| }
|
|
|
|
|