summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-31 21:07:33 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-31 21:07:33 +0000
commit095c7cfacf4a59d5241a17207d7a8a8096469334 (patch)
tree7eb71d968ae4dc9705ba5e9c5ad1b1727f34b2fc /chrome
parent701142a4edf3872fc9b433b68bdaf2c0a3c22db8 (diff)
downloadchromium_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.cc3
-rw-r--r--chrome/browser/net/chrome_net_log.cc16
-rw-r--r--chrome/browser/net/chrome_net_log.h21
-rw-r--r--chrome/browser/net/load_timing_observer.cc3
-rw-r--r--chrome/browser/net/net_log_logger.cc2
-rw-r--r--chrome/browser/net/passive_log_collector.cc3
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) {