diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-06 17:26:13 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-06 17:26:13 +0000 |
commit | d60c79650e1be14bb75b25362b2eadd0c76b48ba (patch) | |
tree | 13c7de9cd16935bd495a963ae04df2778d12fa04 /chrome | |
parent | c0918c5df71848044da5e6268270fe2d640ab0bc (diff) | |
download | chromium_src-d60c79650e1be14bb75b25362b2eadd0c76b48ba.zip chromium_src-d60c79650e1be14bb75b25362b2eadd0c76b48ba.tar.gz chromium_src-d60c79650e1be14bb75b25362b2eadd0c76b48ba.tar.bz2 |
First pass at adding http/backend cache events to the NetLog.
Adds sources and events for ActiveCacheEntry and EntryImpl
objects, as well as adding cache read/write events to
HttpCacheTransactions. Most new read/write events are
only logged when NetLog logging mode is set to log all events.
Also, net-internals now merges begin and end events that have
parameters, as long as only one of them has parameters.
I think this increases readability, at the cost of making
it a little more difficult to follow timings with just the "st"
values.
BUG=59382
TEST=none yet, other than updates to existing tests.
Review URL: http://codereview.chromium.org/4067002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70618 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/net/connection_tester.cc | 1 | ||||
-rw-r--r-- | chrome/browser/net/passive_log_collector.cc | 26 | ||||
-rw-r--r-- | chrome/browser/net/passive_log_collector.h | 17 | ||||
-rw-r--r-- | chrome/browser/resources/net_internals/logviewpainter.js | 75 | ||||
-rw-r--r-- | chrome/browser/resources/net_internals/main.css | 4 | ||||
-rw-r--r-- | chrome/browser/resources/net_internals/sourceentry.js | 3 | ||||
-rw-r--r-- | chrome/service/net/service_url_request_context.cc | 1 | ||||
-rw-r--r-- | chrome/test/plugin/plugin_test.cpp | 1 |
8 files changed, 90 insertions, 38 deletions
diff --git a/chrome/browser/net/connection_tester.cc b/chrome/browser/net/connection_tester.cc index 18960eb..f23d619 100644 --- a/chrome/browser/net/connection_tester.cc +++ b/chrome/browser/net/connection_tester.cc @@ -71,6 +71,7 @@ class ExperimentURLRequestContext : public URLRequestContext { dnsrr_resolver_, NULL /* dns_cert_checker */, NULL /* ssl_host_info_factory */, proxy_service_, ssl_config_service_, http_auth_handler_factory_, NULL, NULL), + NULL /* net_log */, net::HttpCache::DefaultBackend::InMemory(0)); // In-memory cookie store. cookie_store_ = new net::CookieMonster(NULL, NULL); diff --git a/chrome/browser/net/passive_log_collector.cc b/chrome/browser/net/passive_log_collector.cc index 0d41479..21e2935 100644 --- a/chrome/browser/net/passive_log_collector.cc +++ b/chrome/browser/net/passive_log_collector.cc @@ -70,6 +70,7 @@ PassiveLogCollector::PassiveLogCollector() trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_REQUEST] = &dns_request_tracker_; trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_JOB] = &dns_job_tracker_; + trackers_[net::NetLog::SOURCE_DISK_CACHE_ENTRY] = &disk_cache_entry_tracker_; // Make sure our mapping is up-to-date. for (size_t i = 0; i < arraysize(trackers_); ++i) DCHECK(trackers_[i]) << "Unhandled SourceType: " << i; @@ -560,3 +561,28 @@ PassiveLogCollector::DNSJobTracker::DoAddEntry(const ChromeNetLog::Entry& entry, return ACTION_NONE; } } + +//---------------------------------------------------------------------------- +// DiskCacheEntryTracker +//---------------------------------------------------------------------------- + +const size_t PassiveLogCollector::DiskCacheEntryTracker::kMaxNumSources = 100; +const size_t PassiveLogCollector::DiskCacheEntryTracker::kMaxGraveyardSize = 25; + +PassiveLogCollector::DiskCacheEntryTracker::DiskCacheEntryTracker() + : SourceTracker(kMaxNumSources, kMaxGraveyardSize, NULL) { +} + +PassiveLogCollector::SourceTracker::Action +PassiveLogCollector::DiskCacheEntryTracker::DoAddEntry( + const ChromeNetLog::Entry& entry, SourceInfo* out_info) { + AddEntryToSourceInfo(entry, out_info); + + // If the request has ended, move it to the graveyard. + if (entry.type == net::NetLog::TYPE_DISK_CACHE_ENTRY && + entry.phase == net::NetLog::PHASE_END) { + return ACTION_MOVE_TO_GRAVEYARD; + } + + return ACTION_NONE; +} diff --git a/chrome/browser/net/passive_log_collector.h b/chrome/browser/net/passive_log_collector.h index 114e439..a415d59 100644 --- a/chrome/browser/net/passive_log_collector.h +++ b/chrome/browser/net/passive_log_collector.h @@ -304,6 +304,22 @@ class PassiveLogCollector : public ChromeNetLog::ThreadSafeObserver { DISALLOW_COPY_AND_ASSIGN(DNSJobTracker); }; + // Tracks the log entries for the last seen SOURCE_DISK_CACHE_ENTRY. + class DiskCacheEntryTracker : public SourceTracker { + public: + static const size_t kMaxNumSources; + static const size_t kMaxGraveyardSize; + + DiskCacheEntryTracker(); + + protected: + virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, + SourceInfo* out_info); + + private: + DISALLOW_COPY_AND_ASSIGN(DiskCacheEntryTracker); + }; + PassiveLogCollector(); ~PassiveLogCollector(); @@ -340,6 +356,7 @@ class PassiveLogCollector : public ChromeNetLog::ThreadSafeObserver { SpdySessionTracker spdy_session_tracker_; DNSRequestTracker dns_request_tracker_; DNSJobTracker dns_job_tracker_; + DiskCacheEntryTracker disk_cache_entry_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 diff --git a/chrome/browser/resources/net_internals/logviewpainter.js b/chrome/browser/resources/net_internals/logviewpainter.js index 82686c6..28df383 100644 --- a/chrome/browser/resources/net_internals/logviewpainter.js +++ b/chrome/browser/resources/net_internals/logviewpainter.js @@ -49,10 +49,9 @@ function addSourceEntry_(node, sourceEntry) { function canCollapseBeginWithEnd(beginEntry) { return beginEntry && beginEntry.isBegin() && - !beginEntry.orig.params && beginEntry.end && beginEntry.end.index == beginEntry.index + 1 && - !beginEntry.end.orig.params && + (!beginEntry.orig.params || !beginEntry.end.orig.params) && beginEntry.orig.wasPassivelyCaptured == beginEntry.end.orig.wasPassivelyCaptured; } @@ -70,43 +69,43 @@ PrintSourceEntriesAsText = function(sourceEntries, doSecurityStripping) { for (var i = 0; i < entries.length; ++i) { var entry = entries[i]; - // Avoid printing the END for a BEGIN that was immediately before. - if (entry.isEnd() && canCollapseBeginWithEnd(entry.begin)) - continue; - - tablePrinter.addRow(); - - // Annotate this entry with "(P)" if it was passively captured. - tablePrinter.addCell(entry.orig.wasPassivelyCaptured ? '(P) ' : ''); - - tablePrinter.addCell('t='); - var date = g_browser.convertTimeTicksToDate(entry.orig.time) ; - var tCell = tablePrinter.addCell(date.getTime()); - tCell.alignRight = true; - tablePrinter.addCell(' [st='); - var stCell = tablePrinter.addCell(date.getTime() - startTime); - stCell.alignRight = true; - tablePrinter.addCell('] '); - - var indentationStr = makeRepeatedString(' ', entry.getDepth() * 3); - var mainCell = - tablePrinter.addCell(indentationStr + getTextForEvent(entry)); - tablePrinter.addCell(' '); - - // Get the elapsed time. - if (entry.isBegin()) { - tablePrinter.addCell('[dt='); - var dt = '?'; - // Definite time. - if (entry.end) { - dt = entry.end.orig.time - entry.orig.time; - } - var dtCell = tablePrinter.addCell(dt); - dtCell.alignRight = true; + // Avoid printing the END for a BEGIN that was immediately before, unless + // both have extra parameters. + if (!entry.isEnd() || !canCollapseBeginWithEnd(entry.begin)) { + tablePrinter.addRow(); + + // Annotate this entry with "(P)" if it was passively captured. + tablePrinter.addCell(entry.orig.wasPassivelyCaptured ? '(P) ' : ''); + + tablePrinter.addCell('t='); + var date = g_browser.convertTimeTicksToDate(entry.orig.time) ; + var tCell = tablePrinter.addCell(date.getTime()); + tCell.alignRight = true; + tablePrinter.addCell(' [st='); + var stCell = tablePrinter.addCell(date.getTime() - startTime); + stCell.alignRight = true; + tablePrinter.addCell('] '); + + var indentationStr = makeRepeatedString(' ', entry.getDepth() * 3); + var mainCell = + tablePrinter.addCell(indentationStr + getTextForEvent(entry)); + tablePrinter.addCell(' '); + + // Get the elapsed time. + if (entry.isBegin()) { + tablePrinter.addCell('[dt='); + var dt = '?'; + // Definite time. + if (entry.end) { + dt = entry.end.orig.time - entry.orig.time; + } + var dtCell = tablePrinter.addCell(dt); + dtCell.alignRight = true; - tablePrinter.addCell(']'); - } else { - mainCell.allowOverflow = true; + tablePrinter.addCell(']'); + } else { + mainCell.allowOverflow = true; + } } // Output the extra parameters. diff --git a/chrome/browser/resources/net_internals/main.css b/chrome/browser/resources/net_internals/main.css index be3abee..8c6982c 100644 --- a/chrome/browser/resources/net_internals/main.css +++ b/chrome/browser/resources/net_internals/main.css @@ -92,6 +92,10 @@ body { color: #308080; } +#eventsListTableBody .source_DISK_CACHE_ENTRY { + color: gray; +} + #eventsListTableBody .source_SOCKET { color: purple; } diff --git a/chrome/browser/resources/net_internals/sourceentry.js b/chrome/browser/resources/net_internals/sourceentry.js index 4a4df6e..6c02c03 100644 --- a/chrome/browser/resources/net_internals/sourceentry.js +++ b/chrome/browser/resources/net_internals/sourceentry.js @@ -232,6 +232,9 @@ SourceEntry.prototype.getDescription = function() { case LogSourceType.HOST_RESOLVER_IMPL_JOB: description = e.params.host; break; + case LogSourceType.DISK_CACHE_ENTRY: + description = e.params.key; + break; case LogSourceType.SPDY_SESSION: if (e.params.host) description = e.params.host + ' (' + e.params.proxy + ')'; diff --git a/chrome/service/net/service_url_request_context.cc b/chrome/service/net/service_url_request_context.cc index 7f589e0..46d3b7c 100644 --- a/chrome/service/net/service_url_request_context.cc +++ b/chrome/service/net/service_url_request_context.cc @@ -135,6 +135,7 @@ ServiceURLRequestContext::ServiceURLRequestContext( http_auth_handler_factory_, NULL /* network_delegate */, NULL /* net_log */), + NULL /* net_log */, net::HttpCache::DefaultBackend::InMemory(0)); // In-memory cookie store. cookie_store_ = new net::CookieMonster(NULL, NULL); diff --git a/chrome/test/plugin/plugin_test.cpp b/chrome/test/plugin/plugin_test.cpp index 9aa885f..177ad5f 100644 --- a/chrome/test/plugin/plugin_test.cpp +++ b/chrome/test/plugin/plugin_test.cpp @@ -303,6 +303,7 @@ class PluginInstallerDownloadTest http_auth_handler_factory_, network_delegate_, NULL), + NULL /* net_log */, net::HttpCache::DefaultBackend::InMemory(0)); } |