Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2051)

Unified Diff: net/dns/host_resolver_impl.cc

Issue 1778933002: DNS: Per-network-type and Finch-variable timeouts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove change to gdig. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/dns/host_resolver_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/host_resolver_impl.cc
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index bc1617c227e73598daa63a71372020f459e9d0c1..c19d0ac4c8fc69ac78523f6edf8dbd12c5ec4cbc 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -65,6 +65,10 @@ namespace net {
namespace {
+// Default delay between calls to the system resolver for the same hostname.
+// (Can be overridden by field trial.)
+const int64_t kDnsDefaultUnresponsiveDelayMs = 6000;
+
// Limit the size of hostnames that will be resolved to combat issues in
// some platform's resolvers.
const size_t kMaxHostLength = 4096;
@@ -1836,7 +1840,8 @@ HostResolverImpl::ProcTaskParams::ProcTaskParams(
size_t max_retry_attempts)
: resolver_proc(resolver_proc),
max_retry_attempts(max_retry_attempts),
- unresponsive_delay(base::TimeDelta::FromMilliseconds(6000)),
+ unresponsive_delay(
+ base::TimeDelta::FromMilliseconds(kDnsDefaultUnresponsiveDelayMs)),
retry_factor(2) {
// Maximum of 4 retry attempts for host resolution.
static const size_t kDefaultMaxRetryAttempts = 4u;
@@ -1878,12 +1883,15 @@ HostResolverImpl::HostResolverImpl(const Options& options, NetLog* net_log)
new LoopbackProbeJob(weak_ptr_factory_.GetWeakPtr());
#endif
NetworkChangeNotifier::AddIPAddressObserver(this);
+ NetworkChangeNotifier::AddConnectionTypeObserver(this);
NetworkChangeNotifier::AddDNSObserver(this);
#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
!defined(OS_ANDROID)
EnsureDnsReloaderInit();
#endif
+ OnConnectionTypeChanged(NetworkChangeNotifier::GetConnectionType());
+
{
DnsConfig dns_config;
NetworkChangeNotifier::GetDnsConfig(&dns_config);
@@ -1903,6 +1911,7 @@ HostResolverImpl::~HostResolverImpl() {
STLDeleteValues(&jobs_);
NetworkChangeNotifier::RemoveIPAddressObserver(this);
+ NetworkChangeNotifier::RemoveConnectionTypeObserver(this);
NetworkChangeNotifier::RemoveDNSObserver(this);
}
@@ -2341,6 +2350,15 @@ void HostResolverImpl::OnIPAddressChanged() {
// |this| may be deleted inside AbortAllInProgressJobs().
}
+void HostResolverImpl::OnConnectionTypeChanged(
+ NetworkChangeNotifier::ConnectionType type) {
+ proc_params_.unresponsive_delay =
+ GetTimeDeltaForConnectionTypeFromFieldTrialOrDefault(
+ "DnsUnresponsiveDelayMsByConnectionType",
+ base::TimeDelta::FromMilliseconds(kDnsDefaultUnresponsiveDelayMs),
+ type);
+}
+
void HostResolverImpl::OnInitialDNSConfigRead() {
UpdateDNSConfig(false);
}
« no previous file with comments | « net/dns/host_resolver_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698