| Index: net/base/host_resolver_impl.cc
|
| diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc
|
| index c54bf9dad5a384b1966b84f73d3833aaa60a2d94..0a3e8640fbeb12727e6816d35aaaa0f86b7162eb 100644
|
| --- a/net/base/host_resolver_impl.cc
|
| +++ b/net/base/host_resolver_impl.cc
|
| @@ -1016,17 +1016,24 @@ class HostResolverImpl::DnsTask : public base::SupportsWeakPtr<DnsTask> {
|
| int net_error,
|
| const DnsResponse* response) {
|
| DCHECK(transaction);
|
| + base::TimeDelta duration = base::TimeTicks::Now() - start_time;
|
| // Run |callback_| last since the owning Job will then delete this DnsTask.
|
| if (net_error != OK) {
|
| - DNS_HISTOGRAM("AsyncDNS.TransactionFailure",
|
| - base::TimeTicks::Now() - start_time);
|
| + DNS_HISTOGRAM("AsyncDNS.TransactionFailure", duration);
|
| OnFailure(net_error, DnsResponse::DNS_PARSE_OK);
|
| return;
|
| }
|
|
|
| CHECK(response);
|
| - DNS_HISTOGRAM("AsyncDNS.TransactionSuccess",
|
| - base::TimeTicks::Now() - start_time);
|
| + DNS_HISTOGRAM("AsyncDNS.TransactionSuccess", duration);
|
| + switch (transaction->GetType()) {
|
| + case dns_protocol::kTypeA:
|
| + DNS_HISTOGRAM("AsyncDNS.TransactionSuccess_A", duration);
|
| + break;
|
| + case dns_protocol::kTypeAAAA:
|
| + DNS_HISTOGRAM("AsyncDNS.TransactionSuccess_AAAA", duration);
|
| + break;
|
| + }
|
| AddressList addr_list;
|
| base::TimeDelta ttl;
|
| DnsResponse::Result result = response->ParseToAddressList(&addr_list, &ttl);
|
| @@ -1470,6 +1477,18 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
|
| return;
|
| }
|
| DNS_HISTOGRAM("AsyncDNS.ResolveSuccess", duration);
|
| + // Log DNS lookups based on |address_family|.
|
| + switch(key_.address_family) {
|
| + case ADDRESS_FAMILY_IPV4:
|
| + DNS_HISTOGRAM("AsyncDNS.ResolveSuccess_FAMILY_IPV4", duration);
|
| + break;
|
| + case ADDRESS_FAMILY_IPV6:
|
| + DNS_HISTOGRAM("AsyncDNS.ResolveSuccess_FAMILY_IPV6", duration);
|
| + break;
|
| + case ADDRESS_FAMILY_UNSPECIFIED:
|
| + DNS_HISTOGRAM("AsyncDNS.ResolveSuccess_FAMILY_UNSPEC", duration);
|
| + break;
|
| + }
|
|
|
| UmaAsyncDnsResolveStatus(RESOLVE_STATUS_DNS_SUCCESS);
|
| RecordTTL(ttl);
|
|
|