| 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();
|
|
|
|
|