| Index: net/spdy/spdy_proxy_client_socket.cc | 
| =================================================================== | 
| --- net/spdy/spdy_proxy_client_socket.cc	(revision 120368) | 
| +++ net/spdy/spdy_proxy_client_socket.cc	(working copy) | 
| @@ -1,4 +1,4 @@ | 
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| @@ -14,6 +14,8 @@ | 
| #include "net/base/auth.h" | 
| #include "net/base/io_buffer.h" | 
| #include "net/base/net_util.h" | 
| +#include "net/http/http_auth_cache.h" | 
| +#include "net/http/http_auth_handler_factory.h" | 
| #include "net/http/http_net_log_params.h" | 
| #include "net/http/http_proxy_utils.h" | 
| #include "net/http/http_response_headers.h" | 
| @@ -27,11 +29,16 @@ | 
| const HostPortPair& endpoint, | 
| const GURL& url, | 
| const HostPortPair& proxy_server, | 
| -    HttpAuthController* http_auth_controller) | 
| +    HttpAuthCache* auth_cache, | 
| +    HttpAuthHandlerFactory* auth_handler_factory) | 
| : next_state_(STATE_DISCONNECTED), | 
| spdy_stream_(spdy_stream), | 
| endpoint_(endpoint), | 
| -      auth_(http_auth_controller), | 
| +      auth_( | 
| +          new HttpAuthController(HttpAuth::AUTH_PROXY, | 
| +                                 GURL("https://" + proxy_server.ToString()), | 
| +                                 auth_cache, | 
| +                                 auth_handler_factory)), | 
| user_buffer_(NULL), | 
| write_buffer_len_(0), | 
| write_bytes_outstanding_(0), | 
| @@ -54,19 +61,6 @@ | 
| return response_.headers ? &response_ : NULL; | 
| } | 
|  | 
| -const | 
| -scoped_refptr<HttpAuthController>& SpdyProxyClientSocket::GetAuthController() { | 
| -  return auth_; | 
| -} | 
| - | 
| -int SpdyProxyClientSocket::RestartWithAuth(const CompletionCallback& callback) { | 
| -  // A SPDY Stream can only handle a single request, so the underlying | 
| -  // stream may not be reused and a new SpdyProxyClientSocket must be | 
| -  // created (possibly on top of the same SPDY Session). | 
| -  next_state_ = STATE_DISCONNECTED; | 
| -  return ERR_NO_KEEP_ALIVE_ON_AUTH_RESTART; | 
| -} | 
| - | 
| HttpStream* SpdyProxyClientSocket::CreateConnectResponseStream() { | 
| DCHECK(response_stream_.get()); | 
| return response_stream_.release(); | 
| @@ -78,6 +72,8 @@ | 
| // ERR_TUNNEL_CONNECTION_FAILED will be returned for any other status. | 
| // In any of these cases, Read() may be called to retrieve the HTTP | 
| // response body.  Any other return values should be considered fatal. | 
| +// TODO(rch): handle 407 proxy auth requested correctly, perhaps | 
| +// by creating a new stream for the subsequent request. | 
| // TODO(rch): create a more appropriate error code to disambiguate | 
| // the HTTPS Proxy tunnel failure from an HTTP Proxy tunnel failure. | 
| int SpdyProxyClientSocket::Connect(const CompletionCallback& callback) { | 
| @@ -383,17 +379,7 @@ | 
| if (response_.headers->response_code() == 200) { | 
| return OK; | 
| } else if (response_.headers->response_code() == 407) { | 
| -    int rv = HandleAuthChallenge(auth_, &response_, net_log_); | 
| -    if (rv != ERR_PROXY_AUTH_REQUESTED) { | 
| -      return rv; | 
| -    } | 
| -    // SPDY only supports basic and digest auth | 
| -    if (!auth_->auth_info() || | 
| -        (auth_->auth_info()->scheme != "basic" && | 
| -         auth_->auth_info()->scheme != "digest")) { | 
| -      return ERR_PROXY_AUTH_UNSUPPORTED; | 
| -    } | 
| -    return ERR_PROXY_AUTH_REQUESTED; | 
| +    return ERR_TUNNEL_CONNECTION_FAILED; | 
| } else { | 
| // Immediately hand off our SpdyStream to a newly created SpdyHttpStream | 
| // so that any subsequent SpdyFrames are processed in the context of | 
|  | 
| Property changes on: net/spdy/spdy_proxy_client_socket.cc | 
| ___________________________________________________________________ | 
| Added: svn:mergeinfo | 
|  | 
|  |