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

Unified Diff: net/http/http_proxy_client_socket_pool.cc

Issue 9316101: Revert 118950 - Allow chrome to handle 407 auth challenges to CONNECT requests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_proxy_client_socket_pool.h ('k') | net/http/http_proxy_client_socket_pool_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_);
}
« no previous file with comments | « net/http/http_proxy_client_socket_pool.h ('k') | net/http/http_proxy_client_socket_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698