| Index: net/base/host_resolver_impl.cc
|
| diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc
|
| index 97522b43b0cb8d7ecdfa8af525922a6844cdb6fe..ba59569de7f90d6066ceba20ccc8b28b7b34178d 100644
|
| --- a/net/base/host_resolver_impl.cc
|
| +++ b/net/base/host_resolver_impl.cc
|
| @@ -1405,6 +1405,20 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
|
| const AddressList& addr_list) {
|
| DCHECK(is_proc_running());
|
|
|
| + if (!resolver_->resolved_known_ipv6_hostname_ &&
|
| + net_error == OK &&
|
| + key_.address_family == ADDRESS_FAMILY_UNSPECIFIED) {
|
| + if (key_.hostname == "www.google.com") {
|
| + resolver_->resolved_known_ipv6_hostname_ = true;
|
| + bool got_ipv6_address = false;
|
| + for (size_t i = 0; i < addr_list.size(); ++i) {
|
| + if (addr_list[i].GetFamily() == ADDRESS_FAMILY_IPV6)
|
| + got_ipv6_address = true;
|
| + }
|
| + UMA_HISTOGRAM_BOOLEAN("Net.UnspecResolvedIPv6", got_ipv6_address);
|
| + }
|
| + }
|
| +
|
| if (dns_task_error_ != OK) {
|
| base::TimeDelta duration = base::TimeTicks::Now() - start_time;
|
| if (net_error == OK) {
|
| @@ -1659,14 +1673,15 @@ HostResolverImpl::HostResolverImpl(
|
| dispatcher_(job_limits),
|
| max_queued_jobs_(job_limits.total_jobs * 100u),
|
| proc_params_(proc_params),
|
| + net_log_(net_log),
|
| default_address_family_(ADDRESS_FAMILY_UNSPECIFIED),
|
| weak_ptr_factory_(this),
|
| probe_weak_ptr_factory_(this),
|
| received_dns_config_(false),
|
| num_dns_failures_(0),
|
| ipv6_probe_monitoring_(false),
|
| - additional_resolver_flags_(0),
|
| - net_log_(net_log) {
|
| + resolved_known_ipv6_hostname_(false),
|
| + additional_resolver_flags_(0) {
|
|
|
| DCHECK_GE(dispatcher_.num_priorities(), static_cast<size_t>(NUM_PRIORITIES));
|
|
|
| @@ -2059,6 +2074,7 @@ void HostResolverImpl::TryServingAllJobsFromHosts() {
|
| }
|
|
|
| void HostResolverImpl::OnIPAddressChanged() {
|
| + resolved_known_ipv6_hostname_ = false;
|
| // Abandon all ProbeJobs.
|
| probe_weak_ptr_factory_.InvalidateWeakPtrs();
|
| if (cache_.get())
|
|
|