summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 16:38:00 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 16:38:00 +0000
commit95d9c653d112f60af86b01614ebe9beafe4b4335 (patch)
tree625b5556565600f1b0c8207aa09aad5c47e586d7 /chrome/browser/net
parent1455ccf1ccef30ffc77f44ce34edd92e1faf9383 (diff)
downloadchromium_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.cc2
-rw-r--r--chrome/browser/net/passive_log_collector.cc51
-rw-r--r--chrome/browser/net/passive_log_collector.h32
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