| Index: google_apis/gcm/engine/connection_factory_impl.cc
|
| diff --git a/google_apis/gcm/engine/connection_factory_impl.cc b/google_apis/gcm/engine/connection_factory_impl.cc
|
| index 631cad9c483612e381e1a789531b73c1462acf4e..ccfb9cd5e8305510f061ba38bc376db080c4921d 100644
|
| --- a/google_apis/gcm/engine/connection_factory_impl.cc
|
| +++ b/google_apis/gcm/engine/connection_factory_impl.cc
|
| @@ -8,21 +8,20 @@
|
|
|
| #include "base/location.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/metrics/sparse_histogram.h"
|
| #include "base/profiler/scoped_tracker.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "google_apis/gcm/engine/connection_handler_impl.h"
|
| #include "google_apis/gcm/monitoring/gcm_stats_recorder.h"
|
| #include "google_apis/gcm/protocol/mcs.pb.h"
|
| -#include "net/base/load_flags.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/http/http_network_session.h"
|
| #include "net/http/http_request_headers.h"
|
| #include "net/log/net_log.h"
|
| #include "net/proxy/proxy_info.h"
|
| #include "net/socket/client_socket_handle.h"
|
| #include "net/socket/client_socket_pool_manager.h"
|
| #include "net/ssl/ssl_config_service.h"
|
|
|
| namespace gcm {
|
| @@ -304,21 +303,20 @@ void ConnectionFactoryImpl::ConnectImpl() {
|
| // TODO(zea): if the network is offline, don't attempt to connect.
|
| // See crbug.com/396687
|
|
|
| connecting_ = true;
|
| GURL current_endpoint = GetCurrentEndpoint();
|
| recorder_->RecordConnectionInitiated(current_endpoint.host());
|
| RebuildNetworkSessionAuthCache();
|
| int status = gcm_network_session_->proxy_service()->ResolveProxy(
|
| current_endpoint,
|
| std::string(),
|
| - net::LOAD_NORMAL,
|
| &proxy_info_,
|
| base::Bind(&ConnectionFactoryImpl::OnProxyResolveDone,
|
| weak_ptr_factory_.GetWeakPtr()),
|
| &pac_request_,
|
| NULL,
|
| bound_net_log_);
|
| if (status != net::ERR_IO_PENDING)
|
| OnProxyResolveDone(status);
|
| }
|
|
|
| @@ -525,27 +523,24 @@ int ConnectionFactoryImpl::ReconsiderProxyAfterError(int error) {
|
| }
|
|
|
| net::SSLConfig ssl_config;
|
| gcm_network_session_->ssl_config_service()->GetSSLConfig(&ssl_config);
|
| if (proxy_info_.is_https() && ssl_config.send_client_cert) {
|
| gcm_network_session_->ssl_client_auth_cache()->Remove(
|
| proxy_info_.proxy_server().host_port_pair());
|
| }
|
|
|
| int status = gcm_network_session_->proxy_service()->ReconsiderProxyAfterError(
|
| - GetCurrentEndpoint(),
|
| - std::string(), net::LOAD_NORMAL, error, &proxy_info_,
|
| + GetCurrentEndpoint(), std::string(), error, &proxy_info_,
|
| base::Bind(&ConnectionFactoryImpl::OnProxyResolveDone,
|
| weak_ptr_factory_.GetWeakPtr()),
|
| - &pac_request_,
|
| - NULL,
|
| - bound_net_log_);
|
| + &pac_request_, NULL, bound_net_log_);
|
| if (status == net::OK || status == net::ERR_IO_PENDING) {
|
| CloseSocket();
|
| } else {
|
| // If ReconsiderProxyAfterError() failed synchronously, it means
|
| // there was nothing left to fall-back to, so fail the transaction
|
| // with the last connection error we got.
|
| status = error;
|
| }
|
|
|
| // If there is new proxy info, post OnProxyResolveDone to retry it. Otherwise,
|
|
|