| Index: net/dns/host_resolver_impl.cc
|
| diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
|
| index 141f7f89a08145d78e2ff263a3454ccde2de86b9..6cf01c734e19962c84e1824c33465ccf6571f310 100644
|
| --- a/net/dns/host_resolver_impl.cc
|
| +++ b/net/dns/host_resolver_impl.cc
|
| @@ -185,19 +185,33 @@ bool ResemblesMulticastDNSName(const std::string& hostname) {
|
| // Attempts to connect a UDP socket to |dest|:53.
|
| bool IsGloballyReachable(const IPAddressNumber& dest,
|
| const BoundNetLog& net_log) {
|
| + // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
|
| + tracked_objects::ScopedTracker tracking_profile_1(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "455942 IsGloballyReachable (create udp socket)"));
|
| +
|
| scoped_ptr<DatagramClientSocket> socket(
|
| ClientSocketFactory::GetDefaultFactory()->CreateDatagramClientSocket(
|
| DatagramSocket::DEFAULT_BIND,
|
| RandIntCallback(),
|
| net_log.net_log(),
|
| net_log.source()));
|
| + // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
|
| + tracked_objects::ScopedTracker tracking_profile_2(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 IsGloballyReachable (connect)"));
|
| int rv = socket->Connect(IPEndPoint(dest, 53));
|
| if (rv != OK)
|
| return false;
|
| + tracked_objects::ScopedTracker tracking_profile_3(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "455942 IsGloballyReachable (get local addr)"));
|
| IPEndPoint endpoint;
|
| rv = socket->GetLocalAddress(&endpoint);
|
| if (rv != OK)
|
| return false;
|
| + tracked_objects::ScopedTracker tracking_profile_4(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "455942 IsGloballyReachable (remainder)"));
|
| DCHECK_EQ(ADDRESS_FAMILY_IPV6, endpoint.GetFamily());
|
| const IPAddressNumber& address = endpoint.address();
|
| bool is_link_local = (address[0] == 0xFE) && ((address[1] & 0xC0) == 0x80);
|
| @@ -1887,11 +1901,17 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
|
|
|
| LogStartRequest(source_net_log, info);
|
|
|
| + tracked_objects::ScopedTracker tracking_profile_1a(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 1a"));
|
| +
|
| IPAddressNumber ip_number;
|
| IPAddressNumber* ip_number_ptr = nullptr;
|
| if (ParseIPLiteralToNumber(info.hostname(), &ip_number))
|
| ip_number_ptr = &ip_number;
|
|
|
| + tracked_objects::ScopedTracker tracking_profile_1b(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 1b"));
|
| +
|
| // Build a key that identifies the request in the cache and in the
|
| // outstanding jobs map.
|
| Key key = GetEffectiveKeyForRequest(info, ip_number_ptr, source_net_log);
|
| @@ -1907,27 +1927,16 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
|
| return rv;
|
| }
|
|
|
| - // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
|
| - tracked_objects::ScopedTracker tracking_profile_3(
|
| - FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 3"));
|
| -
|
| // Next we need to attach our request to a "job". This job is responsible for
|
| // calling "getaddrinfo(hostname)" on a worker thread.
|
|
|
| JobMap::iterator jobit = jobs_.find(key);
|
| Job* job;
|
| if (jobit == jobs_.end()) {
|
| - // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
|
| - tracked_objects::ScopedTracker tracking_profile_4(
|
| - FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 4"));
|
| job =
|
| new Job(weak_ptr_factory_.GetWeakPtr(), key, priority, source_net_log);
|
| job->Schedule(false);
|
|
|
| - // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
|
| - tracked_objects::ScopedTracker tracking_profile_5(
|
| - FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 5"));
|
| -
|
| // Check for queue overflow.
|
| if (dispatcher_->num_queued_jobs() > max_queued_jobs_) {
|
| Job* evicted = static_cast<Job*>(dispatcher_->EvictOldestLowest());
|
| @@ -1944,10 +1953,6 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
|
| job = jobit->second;
|
| }
|
|
|
| - // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
|
| - tracked_objects::ScopedTracker tracking_profile_6(
|
| - FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 6"));
|
| -
|
| // Can't complete synchronously. Create and attach request.
|
| scoped_ptr<Request> req(new Request(
|
| source_net_log, info, priority, callback, addresses));
|
|
|