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

Unified Diff: net/dns/host_resolver_impl.cc

Issue 23181010: Fast-fail WPAD detection. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Only invoke native resolver. Created 7 years, 3 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
Index: net/dns/host_resolver_impl.cc
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index d10949f23cd9ee91fbef9aa8e909985a715a1563..f89b8e030c0f09ae611242ff0ec89ace99ca13ff 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -1152,7 +1152,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
Job(const base::WeakPtr<HostResolverImpl>& resolver,
const Key& key,
RequestPriority priority,
- const BoundNetLog& request_net_log)
+ const BoundNetLog& request_net_log,
+ const RequestInfo& info)
szym 2013/09/16 21:50:32 No need for this. The flags are available in |key.
Elly Fong-Jones 2013/09/16 22:10:11 Done.
: resolver_(resolver),
key_(key),
priority_tracker_(priority),
@@ -1162,7 +1163,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
creation_time_(base::TimeTicks::Now()),
priority_change_time_(creation_time_),
net_log_(BoundNetLog::Make(request_net_log.net_log(),
- NetLog::SOURCE_HOST_RESOLVER_IMPL_JOB)) {
+ NetLog::SOURCE_HOST_RESOLVER_IMPL_JOB)),
+ info_(info) {
request_net_log.AddEvent(NetLog::TYPE_HOST_RESOLVER_IMPL_CREATE_JOB);
net_log_.BeginEvent(
@@ -1361,8 +1363,12 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
queue_time_after_change);
}
+ HostResolverFlags resolver_flags = info_.host_resolver_flags();
+ bool native_only = resolver_flags & HOST_RESOLVER_NATIVE_ONLY;
+
// Caution: Job::Start must not complete synchronously.
- if (had_dns_config_ && !ResemblesMulticastDNSName(key_.hostname)) {
+ if (!native_only && had_dns_config_ &&
+ !ResemblesMulticastDNSName(key_.hostname)) {
StartDnsTask();
} else {
StartProcTask();
@@ -1652,6 +1658,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
// A handle used in |HostResolverImpl::dispatcher_|.
PrioritizedDispatcher::Handle handle_;
+
+ RequestInfo info_;
};
//-----------------------------------------------------------------------------
@@ -1772,7 +1780,8 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
Job* job;
if (jobit == jobs_.end()) {
job =
- new Job(weak_ptr_factory_.GetWeakPtr(), key, priority, request_net_log);
+ new Job(weak_ptr_factory_.GetWeakPtr(), key, priority, request_net_log,
+ info);
job->Schedule();
// Check for queue overflow.

Powered by Google App Engine
This is Rietveld 408576698