diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-18 16:38:00 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-18 16:38:00 +0000 |
commit | 95d9c653d112f60af86b01614ebe9beafe4b4335 (patch) | |
tree | 625b5556565600f1b0c8207aa09aad5c47e586d7 /chrome/browser/net | |
parent | 1455ccf1ccef30ffc77f44ce34edd92e1faf9383 (diff) | |
download | chromium_src-95d9c653d112f60af86b01614ebe9beafe4b4335.zip chromium_src-95d9c653d112f60af86b01614ebe9beafe4b4335.tar.gz chromium_src-95d9c653d112f60af86b01614ebe9beafe4b4335.tar.bz2 |
Added HostResolveImpl Requests and Jobs to log.
ConnectJobs point to the requests, Requests point back to ConnectJobs and to the DNS lookup they were attached to, if any.
Also CONNECT_JOBs are now identified by their host/port on the Requests list.
BUG= 46844
TEST= Look at the net-internals screen.
Review URL: http://codereview.chromium.org/3080034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56539 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/net')
-rw-r--r-- | chrome/browser/net/connection_tester.cc | 2 | ||||
-rw-r--r-- | chrome/browser/net/passive_log_collector.cc | 51 | ||||
-rw-r--r-- | chrome/browser/net/passive_log_collector.h | 32 |
3 files changed, 83 insertions, 2 deletions
diff --git a/chrome/browser/net/connection_tester.cc b/chrome/browser/net/connection_tester.cc index 1dd598e..5f71795 100644 --- a/chrome/browser/net/connection_tester.cc +++ b/chrome/browser/net/connection_tester.cc @@ -82,7 +82,7 @@ class ExperimentURLRequestContext : public URLRequestContext { // Create a vanilla HostResolver that disables caching. const size_t kMaxJobs = 50u; scoped_refptr<net::HostResolverImpl> impl = - new net::HostResolverImpl(NULL, NULL, kMaxJobs); + new net::HostResolverImpl(NULL, NULL, kMaxJobs, NULL); *host_resolver = impl; diff --git a/chrome/browser/net/passive_log_collector.cc b/chrome/browser/net/passive_log_collector.cc index 152d332..adc6500 100644 --- a/chrome/browser/net/passive_log_collector.cc +++ b/chrome/browser/net/passive_log_collector.cc @@ -57,7 +57,9 @@ PassiveLogCollector::PassiveLogCollector() trackers_[net::NetLog::SOURCE_INIT_PROXY_RESOLVER] = &init_proxy_resolver_tracker_; trackers_[net::NetLog::SOURCE_SPDY_SESSION] = &spdy_session_tracker_; - + trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_REQUEST] = + &dns_request_tracker_; + trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_JOB] = &dns_job_tracker_; // Make sure our mapping is up-to-date. for (size_t i = 0; i < arraysize(trackers_); ++i) DCHECK(trackers_[i]) << "Unhandled SourceType: " << i; @@ -485,3 +487,50 @@ PassiveLogCollector::SpdySessionTracker::DoAddEntry(const Entry& entry, return ACTION_NONE; } } + +//---------------------------------------------------------------------------- +// DNSRequestTracker +//---------------------------------------------------------------------------- + +const size_t PassiveLogCollector::DNSRequestTracker::kMaxNumSources = 200; +const size_t PassiveLogCollector::DNSRequestTracker::kMaxGraveyardSize = 20; + +PassiveLogCollector::DNSRequestTracker::DNSRequestTracker() + : SourceTracker(kMaxNumSources, kMaxGraveyardSize, NULL) { +} + +PassiveLogCollector::SourceTracker::Action +PassiveLogCollector::DNSRequestTracker::DoAddEntry(const Entry& entry, + SourceInfo* out_info) { + AddEntryToSourceInfo(entry, out_info); + if (entry.type == net::NetLog::TYPE_HOST_RESOLVER_IMPL_REQUEST && + entry.phase == net::NetLog::PHASE_END) { + return ACTION_MOVE_TO_GRAVEYARD; + } else { + return ACTION_NONE; + } +} + +//---------------------------------------------------------------------------- +// DNSJobTracker +//---------------------------------------------------------------------------- + +const size_t PassiveLogCollector::DNSJobTracker::kMaxNumSources = 100; +const size_t PassiveLogCollector::DNSJobTracker::kMaxGraveyardSize = 15; + +PassiveLogCollector::DNSJobTracker::DNSJobTracker() + : SourceTracker(kMaxNumSources, kMaxGraveyardSize, NULL) { +} + +PassiveLogCollector::SourceTracker::Action +PassiveLogCollector::DNSJobTracker::DoAddEntry(const Entry& entry, + SourceInfo* out_info) { + AddEntryToSourceInfo(entry, out_info); + if (entry.type == net::NetLog::TYPE_HOST_RESOLVER_IMPL_JOB && + entry.phase == net::NetLog::PHASE_END) { + return ACTION_MOVE_TO_GRAVEYARD; + } else { + return ACTION_NONE; + } +} + diff --git a/chrome/browser/net/passive_log_collector.h b/chrome/browser/net/passive_log_collector.h index e7d741f..8ffd459 100644 --- a/chrome/browser/net/passive_log_collector.h +++ b/chrome/browser/net/passive_log_collector.h @@ -283,6 +283,36 @@ class PassiveLogCollector : public ChromeNetLog::Observer { DISALLOW_COPY_AND_ASSIGN(SpdySessionTracker); }; + // Tracks the log entries for the last seen SOURCE_HOST_RESOLVER_IMPL_REQUEST. + class DNSRequestTracker : public SourceTracker { + public: + static const size_t kMaxNumSources; + static const size_t kMaxGraveyardSize; + + DNSRequestTracker(); + + protected: + virtual Action DoAddEntry(const Entry& entry, SourceInfo* out_info); + + private: + DISALLOW_COPY_AND_ASSIGN(DNSRequestTracker); + }; + + // Tracks the log entries for the last seen SOURCE_HOST_RESOLVER_IMPL_JOB. + class DNSJobTracker : public SourceTracker { + public: + static const size_t kMaxNumSources; + static const size_t kMaxGraveyardSize; + + DNSJobTracker(); + + protected: + virtual Action DoAddEntry(const Entry& entry, SourceInfo* out_info); + + private: + DISALLOW_COPY_AND_ASSIGN(DNSJobTracker); + }; + PassiveLogCollector(); ~PassiveLogCollector(); @@ -317,6 +347,8 @@ class PassiveLogCollector : public ChromeNetLog::Observer { RequestTracker socket_stream_tracker_; InitProxyResolverTracker init_proxy_resolver_tracker_; SpdySessionTracker spdy_session_tracker_; + DNSRequestTracker dns_request_tracker_; + DNSJobTracker dns_job_tracker_; // This array maps each NetLog::SourceType to one of the tracker instances // defined above. Use of this array avoid duplicating the list of trackers |