diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-31 21:07:33 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-31 21:07:33 +0000 |
commit | 095c7cfacf4a59d5241a17207d7a8a8096469334 (patch) | |
tree | 7eb71d968ae4dc9705ba5e9c5ad1b1727f34b2fc /chrome | |
parent | 701142a4edf3872fc9b433b68bdaf2c0a3c22db8 (diff) | |
download | chromium_src-095c7cfacf4a59d5241a17207d7a8a8096469334.zip chromium_src-095c7cfacf4a59d5241a17207d7a8a8096469334.tar.gz chromium_src-095c7cfacf4a59d5241a17207d7a8a8096469334.tar.bz2 |
Fix a regression whereby full-granularity network events were being captured by PassiveLogCollector.
BUG=53883
TEST=Load a webpage. Now open about:net-internals and verify that the log for that URL does NOT contain the HTTP request/response headers.
Review URL: http://codereview.chromium.org/3274016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58070 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/dom_ui/net_internals_ui.cc | 3 | ||||
-rw-r--r-- | chrome/browser/net/chrome_net_log.cc | 16 | ||||
-rw-r--r-- | chrome/browser/net/chrome_net_log.h | 21 | ||||
-rw-r--r-- | chrome/browser/net/load_timing_observer.cc | 3 | ||||
-rw-r--r-- | chrome/browser/net/net_log_logger.cc | 2 | ||||
-rw-r--r-- | chrome/browser/net/passive_log_collector.cc | 3 |
6 files changed, 39 insertions, 9 deletions
diff --git a/chrome/browser/dom_ui/net_internals_ui.cc b/chrome/browser/dom_ui/net_internals_ui.cc index 1e8ec4b..b1e2950 100644 --- a/chrome/browser/dom_ui/net_internals_ui.cc +++ b/chrome/browser/dom_ui/net_internals_ui.cc @@ -416,7 +416,8 @@ NetInternalsMessageHandler::IOThreadImpl::IOThreadImpl( const base::WeakPtr<NetInternalsMessageHandler>& handler, IOThread* io_thread, URLRequestContextGetter* context_getter) - : handler_(handler), + : Observer(net::NetLog::LOG_ALL), + handler_(handler), io_thread_(io_thread), context_getter_(context_getter), is_observing_log_(false) { diff --git a/chrome/browser/net/chrome_net_log.cc b/chrome/browser/net/chrome_net_log.cc index de2466e..dd9c62f 100644 --- a/chrome/browser/net/chrome_net_log.cc +++ b/chrome/browser/net/chrome_net_log.cc @@ -15,6 +15,8 @@ #include "chrome/browser/net/passive_log_collector.h" #include "chrome/common/chrome_switches.h" +ChromeNetLog::Observer::Observer(LogLevel log_level) : log_level_(log_level) {} + ChromeNetLog::ChromeNetLog() : next_id_(1), passive_collector_(new PassiveLogCollector), @@ -56,10 +58,18 @@ uint32 ChromeNetLog::NextID() { return next_id_++; } -bool ChromeNetLog::HasListener() const { +net::NetLog::LogLevel ChromeNetLog::GetLogLevel() const { DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); - // (Don't count the PassiveLogCollector observer). - return observers_.size() > 1; + + // Look through all the observers and find the finest granularity + // log level (higher values of the enum imply *lower* log levels). + LogLevel log_level = LOG_BASIC; + ObserverListBase<Observer>::Iterator it(observers_); + Observer* observer; + while ((observer = it.GetNext()) != NULL) { + log_level = std::min(log_level, observer->log_level()); + } + return log_level; } void ChromeNetLog::AddObserver(Observer* observer) { diff --git a/chrome/browser/net/chrome_net_log.h b/chrome/browser/net/chrome_net_log.h index bee4c62..24183bf 100644 --- a/chrome/browser/net/chrome_net_log.h +++ b/chrome/browser/net/chrome_net_log.h @@ -28,12 +28,26 @@ class ChromeNetLog : public net::NetLog { // Interface for observing the events logged by the network stack. class Observer { public: + // Constructs an observer that wants to see network events, with + // the specified minimum event granularity. + // + // Typical observers should specify LOG_BASIC. + // + // Observers that need to see the full granularity of events can + // specify LOG_ALL. However doing so will have performance consequences, + // and may cause PassiveLogCollector to use more memory than anticiapted. + explicit Observer(LogLevel log_level); + virtual ~Observer() {} virtual void OnAddEntry(EventType type, const base::TimeTicks& time, const Source& source, EventPhase phase, EventParameters* params) = 0; + LogLevel log_level() const { return log_level_; } + private: + LogLevel log_level_; + DISALLOW_COPY_AND_ASSIGN(Observer); }; ChromeNetLog(); @@ -46,7 +60,7 @@ class ChromeNetLog : public net::NetLog { EventPhase phase, EventParameters* params); virtual uint32 NextID(); - virtual bool HasListener() const; + virtual LogLevel GetLogLevel() const; void AddObserver(Observer* observer); void RemoveObserver(Observer* observer); @@ -64,7 +78,10 @@ class ChromeNetLog : public net::NetLog { scoped_ptr<PassiveLogCollector> passive_collector_; scoped_ptr<LoadTimingObserver> load_timing_observer_; scoped_ptr<NetLogLogger> net_log_logger_; - ObserverList<Observer, true> observers_; + + // Note that this needs to be "mutable" so we can iterate over the observer + // list in GetLogLevel(). + mutable ObserverList<Observer, true> observers_; DISALLOW_COPY_AND_ASSIGN(ChromeNetLog); }; diff --git a/chrome/browser/net/load_timing_observer.cc b/chrome/browser/net/load_timing_observer.cc index d2e45c6..7b292d0 100644 --- a/chrome/browser/net/load_timing_observer.cc +++ b/chrome/browser/net/load_timing_observer.cc @@ -49,7 +49,8 @@ LoadTimingObserver::URLRequestRecord::URLRequestRecord() } LoadTimingObserver::LoadTimingObserver() - : last_connect_job_id_(net::NetLog::Source::kInvalidId) { + : Observer(net::NetLog::LOG_BASIC), + last_connect_job_id_(net::NetLog::Source::kInvalidId) { } LoadTimingObserver::~LoadTimingObserver() { diff --git a/chrome/browser/net/net_log_logger.cc b/chrome/browser/net/net_log_logger.cc index e9905a7..4f5021f 100644 --- a/chrome/browser/net/net_log_logger.cc +++ b/chrome/browser/net/net_log_logger.cc @@ -7,7 +7,7 @@ #include "base/json/json_writer.h" #include "base/values.h" -NetLogLogger::NetLogLogger() {} +NetLogLogger::NetLogLogger() : Observer(net::NetLog::LOG_ALL) {} NetLogLogger::~NetLogLogger() {} diff --git a/chrome/browser/net/passive_log_collector.cc b/chrome/browser/net/passive_log_collector.cc index adc6500..3dd8ccd 100644 --- a/chrome/browser/net/passive_log_collector.cc +++ b/chrome/browser/net/passive_log_collector.cc @@ -42,7 +42,8 @@ bool SortByOrderComparator(const PassiveLogCollector::Entry& a, //---------------------------------------------------------------------------- PassiveLogCollector::PassiveLogCollector() - : ALLOW_THIS_IN_INITIALIZER_LIST(connect_job_tracker_(this)), + : Observer(net::NetLog::LOG_BASIC), + ALLOW_THIS_IN_INITIALIZER_LIST(connect_job_tracker_(this)), ALLOW_THIS_IN_INITIALIZER_LIST(url_request_tracker_(this)), ALLOW_THIS_IN_INITIALIZER_LIST(socket_stream_tracker_(this)), num_events_seen_(0) { |