Index: chromecast/net/connectivity_checker_impl.cc |
diff --git a/chromecast/net/connectivity_checker_impl.cc b/chromecast/net/connectivity_checker_impl.cc |
index b1b24eba9dc1f30eb8464738515fa3cab77764d0..eed6a45fcb9edd41a235aa1a9f697110cdd2e91e 100644 |
--- a/chromecast/net/connectivity_checker_impl.cc |
+++ b/chromecast/net/connectivity_checker_impl.cc |
@@ -14,12 +14,11 @@ |
#include "chromecast/base/metrics/cast_metrics_helper.h" |
#include "chromecast/chromecast_features.h" |
#include "chromecast/net/net_switches.h" |
+#include "components/proxy_config/pref_proxy_config_tracker.h" |
#include "net/base/request_priority.h" |
#include "net/http/http_response_headers.h" |
#include "net/http/http_response_info.h" |
#include "net/http/http_status_code.h" |
-#include "net/proxy/proxy_config.h" |
-#include "net/proxy/proxy_config_service_fixed.h" |
#include "net/socket/ssl_client_socket.h" |
#include "net/url_request/url_request_context.h" |
#include "net/url_request/url_request_context_builder.h" |
@@ -58,18 +57,27 @@ const char kMetricNameNetworkConnectivityCheckingErrorType[] = |
} // namespace |
ConnectivityCheckerImpl::ConnectivityCheckerImpl( |
- const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) |
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
+ std::unique_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker) |
: ConnectivityChecker(), |
task_runner_(task_runner), |
connected_(false), |
connection_type_(net::NetworkChangeNotifier::CONNECTION_NONE), |
check_errors_(0), |
- network_changed_pending_(false) { |
+ network_changed_pending_(false), |
+ pref_proxy_config_tracker_(std::move(pref_proxy_config_tracker)) { |
DCHECK(task_runner_.get()); |
+ |
task_runner->PostTask(FROM_HERE, |
base::Bind(&ConnectivityCheckerImpl::Initialize, this)); |
} |
+void ConnectivityCheckerImpl::DetachFromPrefService() { |
+ if (pref_proxy_config_tracker_.get()) { |
+ pref_proxy_config_tracker_->DetachFromPrefService(); |
+ } |
+} |
+ |
void ConnectivityCheckerImpl::Initialize() { |
DCHECK(task_runner_->BelongsToCurrentThread()); |
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
@@ -79,9 +87,10 @@ void ConnectivityCheckerImpl::Initialize() { |
check_url_str.empty() ? kDefaultConnectivityCheckUrl : check_url_str)); |
net::URLRequestContextBuilder builder; |
+ |
builder.set_proxy_config_service( |
- base::MakeUnique<net::ProxyConfigServiceFixed>( |
- net::ProxyConfig::CreateDirect())); |
+ pref_proxy_config_tracker_->CreateTrackingProxyConfigService(nullptr)); |
+ |
builder.DisableHttpCache(); |
url_request_context_ = builder.Build(); |