Change DataReductionProxy to use NetworkChangeObserver
NetworkChangeNotifier::IPAddress Observer is being deprecated.
This CL migrates DataReductionProxy to use NetworkChangeObserver instead.
Bug: 754695
Change-Id: I473ad45e88cff01a9f33a183033a9d86f59aef4e
Reviewed-on: https://chromium-review.googlesource.com/1133330
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575549}
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc
index 8b1b2d4..b62bcafc 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc
@@ -190,7 +190,7 @@
DataReductionProxyConfigServiceClient::
~DataReductionProxyConfigServiceClient() {
- net::NetworkChangeNotifier::RemoveIPAddressObserver(this);
+ net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
}
base::TimeDelta
@@ -230,7 +230,7 @@
&DataReductionProxyConfigServiceClient::OnApplicationStateChange,
base::Unretained(this))));
#endif
- net::NetworkChangeNotifier::AddIPAddressObserver(this);
+ net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
url_request_context_getter_ = url_request_context_getter;
}
@@ -391,8 +391,13 @@
return base::Time::Now();
}
-void DataReductionProxyConfigServiceClient::OnIPAddressChanged() {
+void DataReductionProxyConfigServiceClient::OnNetworkChanged(
+ net::NetworkChangeNotifier::ConnectionType type) {
DCHECK(thread_checker_.CalledOnValidThread());
+
+ if (type == net::NetworkChangeNotifier::CONNECTION_NONE)
+ return;
+
GetBackoffEntry()->Reset();
last_ip_address_change_ = base::TimeTicks::Now();
failed_attempts_before_success_ = 0;
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.h
index 9cf4b0c..87aa6a5 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.h
@@ -83,7 +83,7 @@
// fetch policy is different if Chrome is in the background. Every time a config
// is fetched, it is written to the disk.
class DataReductionProxyConfigServiceClient
- : public net::NetworkChangeNotifier::IPAddressObserver,
+ : public net::NetworkChangeNotifier::NetworkChangeObserver,
public net::URLFetcherDelegate {
public:
// The caller must ensure that all parameters remain alive for the lifetime of
@@ -162,8 +162,9 @@
const base::TimeDelta& config_expiration,
const base::TimeDelta& backoff_delay);
- // Override of net::NetworkChangeNotifier::IPAddressObserver.
- void OnIPAddressChanged() override;
+ // Override of net::NetworkChangeNotifier::NetworkChangeObserver.
+ void OnNetworkChanged(
+ net::NetworkChangeNotifier::ConnectionType type) override;
// Override of net::URLFetcherDelegate.
void OnURLFetchComplete(const net::URLFetcher* source) override;
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
index 64457206..a7853c5 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
@@ -703,7 +703,8 @@
EXPECT_EQ(kFailureCount, config_client()->GetBackoffErrorCount());
// IP address change should reset.
- config_client()->OnIPAddressChanged();
+ config_client()->OnNetworkChanged(
+ net::NetworkChangeNotifier::CONNECTION_WIFI);
EXPECT_EQ(0, config_client()->GetBackoffErrorCount());
EXPECT_EQ(i == 0, persisted_config().empty());
EXPECT_EQ(i == 0, persisted_config_retrieval_time().is_null());
@@ -745,7 +746,8 @@
EXPECT_EQ(kFailureCount, config_client()->GetBackoffErrorCount());
// IP address change should reset.
- config_client()->OnIPAddressChanged();
+ config_client()->OnNetworkChanged(
+ net::NetworkChangeNotifier::CONNECTION_WIFI);
EXPECT_EQ(0, config_client()->GetBackoffErrorCount());
EXPECT_TRUE(persisted_config().empty());
EXPECT_TRUE(persisted_config_retrieval_time().is_null());
@@ -795,7 +797,8 @@
}
EXPECT_EQ(0, config_client()->GetBackoffErrorCount());
- config_client()->OnIPAddressChanged();
+ config_client()->OnNetworkChanged(
+ net::NetworkChangeNotifier::CONNECTION_WIFI);
EXPECT_EQ(0, config_client()->GetBackoffErrorCount());
config_client()->RetrieveConfig();
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
index 21a0b7b..c58414a 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
@@ -58,14 +58,14 @@
DataReductionProxyDelegate::~DataReductionProxyDelegate() {
DCHECK(thread_checker_.CalledOnValidThread());
- net::NetworkChangeNotifier::RemoveIPAddressObserver(this);
+ net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
}
void DataReductionProxyDelegate::InitializeOnIOThread(
DataReductionProxyIOData* io_data) {
DCHECK(io_data);
DCHECK(thread_checker_.CalledOnValidThread());
- net::NetworkChangeNotifier::AddIPAddressObserver(this);
+ net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
io_data_ = io_data;
}
@@ -238,8 +238,13 @@
QUIC_PROXY_STATUS_BOUNDARY);
}
-void DataReductionProxyDelegate::OnIPAddressChanged() {
+void DataReductionProxyDelegate::OnNetworkChanged(
+ net::NetworkChangeNotifier::ConnectionType type) {
DCHECK(thread_checker_.CalledOnValidThread());
+
+ if (type == net::NetworkChangeNotifier::CONNECTION_NONE)
+ return;
+
last_network_change_time_ = tick_clock_->NowTicks();
}
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
index 3f94d38..dd575589 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
@@ -34,7 +34,7 @@
class DataReductionProxyDelegate
: public net::ProxyDelegate,
- public net::NetworkChangeNotifier::IPAddressObserver {
+ public net::NetworkChangeNotifier::NetworkChangeObserver {
public:
// ProxyDelegate instance is owned by io_thread. |auth_handler| and |config|
// outlives this class instance.
@@ -77,8 +77,9 @@
// Records the availability status of data reduction proxy.
void RecordQuicProxyStatus(QuicProxyStatus status) const;
- // NetworkChangeNotifier::IPAddressObserver:
- void OnIPAddressChanged() override;
+ // NetworkChangeNotifier::NetworkChangeObserver:
+ void OnNetworkChanged(
+ net::NetworkChangeNotifier::ConnectionType type) override;
// Checks if the first proxy server in |result| supports QUIC and if so
// adds an alternative proxy configuration to |result|.
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h
index 4fe0374d..96eac34 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h
@@ -109,7 +109,7 @@
~TestDataReductionProxyConfigServiceClient() override;
- using DataReductionProxyConfigServiceClient::OnIPAddressChanged;
+ using DataReductionProxyConfigServiceClient::OnNetworkChanged;
void SetNow(const base::Time& time);