Revert "Refactor host_resolver_impl.h to use NetworkChangeObserver"
This reverts commit 0b89497ac30beb8de0f4fcfe37ff4f63fc4441de.
Reason for revert: This is a very sensitive network change observer and I don't think the conversion to OnNetworkChanged was done properly. OnNetworkChanged isn't a simple conversion, please see the doc in the linked bug or the comment above OnNetworkChanged. Observers need to be edge triggered.
Original change's description:
> Refactor host_resolver_impl.h to use NetworkChangeObserver
>
> Combine the IPAddressChanged and ConnectionTypeChanged signals
>
> Bug: 754695
>
> Signed-off-by: Wang Hui <[email protected]>
> Change-Id: I942eed13c59aa4f1bc021f766f8664abd5920f1b
> Reviewed-on: https://chromium-review.googlesource.com/1206550
> Reviewed-by: Bence Béky <[email protected]>
> Commit-Queue: Bence Béky <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#591081}
[email protected],[email protected]
Change-Id: Iaee4f0b5967da4d9be6efc25611ef3b02d9c22e4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 754695
Reviewed-on: https://chromium-review.googlesource.com/1226304
Reviewed-by: Paul Jensen <[email protected]>
Commit-Queue: Paul Jensen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#591369}
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index 2b1bfad..1a9366be 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -2069,14 +2069,15 @@
defined(OS_FUCHSIA)
RunLoopbackProbeJob();
#endif
- NetworkChangeNotifier::AddNetworkChangeObserver(this);
+ NetworkChangeNotifier::AddIPAddressObserver(this);
+ NetworkChangeNotifier::AddConnectionTypeObserver(this);
NetworkChangeNotifier::AddDNSObserver(this);
#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
!defined(OS_ANDROID)
EnsureDnsReloaderInit();
#endif
- UpdateProcParams(NetworkChangeNotifier::GetConnectionType());
+ OnConnectionTypeChanged(NetworkChangeNotifier::GetConnectionType());
{
DnsConfig dns_config;
@@ -2097,7 +2098,8 @@
// OnJobComplete will not start any new jobs.
jobs_.clear();
- NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
+ NetworkChangeNotifier::RemoveIPAddressObserver(this);
+ NetworkChangeNotifier::RemoveConnectionTypeObserver(this);
NetworkChangeNotifier::RemoveDNSObserver(this);
}
@@ -2753,9 +2755,7 @@
}
}
-void HostResolverImpl::OnNetworkChanged(
- NetworkChangeNotifier::ConnectionType type) {
- UpdateProcParams(type);
+void HostResolverImpl::OnIPAddressChanged() {
last_ipv6_probe_time_ = base::TimeTicks();
// Abandon all ProbeJobs.
probe_weak_ptr_factory_.InvalidateWeakPtrs();
@@ -2769,7 +2769,7 @@
// |this| may be deleted inside AbortAllInProgressJobs().
}
-void HostResolverImpl::UpdateProcParams(
+void HostResolverImpl::OnConnectionTypeChanged(
NetworkChangeNotifier::ConnectionType type) {
proc_params_.unresponsive_delay =
GetTimeDeltaForConnectionTypeFromFieldTrialOrDefault(