Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5699)

Unified Diff: chrome/browser/net/passive_log_collector.cc

Issue 1556018: Add support for attaching custom parameters to NetLog events. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Address willchan's comments Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/net/passive_log_collector.h ('k') | chrome/browser/net/passive_log_collector_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/passive_log_collector.cc
===================================================================
--- chrome/browser/net/passive_log_collector.cc (revision 44049)
+++ chrome/browser/net/passive_log_collector.cc (working copy)
@@ -21,7 +21,7 @@
return a.entries[0].source.id < b.entries[0].source.id;
}
-void AddEntryToRequestInfo(const net::NetLog::Entry& entry,
+void AddEntryToRequestInfo(const net::CapturingNetLog::Entry& entry,
bool is_unbounded,
PassiveLogCollector::RequestInfo* out_info) {
// Start dropping new entries when the log has gotten too big.
@@ -54,7 +54,16 @@
PassiveLogCollector::~PassiveLogCollector() {
}
-void PassiveLogCollector::OnAddEntry(const net::NetLog::Entry& entry) {
+void PassiveLogCollector::OnAddEntry(
+ net::NetLog::EventType type,
+ const base::TimeTicks& time,
+ const net::NetLog::Source& source,
+ net::NetLog::EventPhase phase,
+ net::NetLog::EventParameters* extra_parameters) {
+ // Package the parameters into a single struct for convenience.
+ net::CapturingNetLog::Entry entry(type, time, source, phase,
+ extra_parameters);
+
switch (entry.source.type) {
case net::NetLog::SOURCE_URL_REQUEST:
url_request_tracker_.OnAddEntry(entry);
@@ -92,7 +101,7 @@
}
void PassiveLogCollector::RequestTrackerBase::OnAddEntry(
- const net::NetLog::Entry& entry) {
+ const net::CapturingNetLog::Entry& entry) {
RequestInfo& info = live_requests_[entry.source.id];
Action result = DoAddEntry(entry, &info);
@@ -222,15 +231,14 @@
PassiveLogCollector::RequestTrackerBase::Action
PassiveLogCollector::ConnectJobTracker::DoAddEntry(
- const net::NetLog::Entry& entry,
+ const net::CapturingNetLog::Entry& entry,
RequestInfo* out_info) {
// Save the entry (possibly truncating).
AddEntryToRequestInfo(entry, is_unbounded(), out_info);
// If this is the end of the connect job, move the request to the graveyard.
- if (entry.type == net::NetLog::Entry::TYPE_EVENT &&
- entry.event.type == net::NetLog::TYPE_SOCKET_POOL_CONNECT_JOB &&
- entry.event.phase == net::NetLog::PHASE_END) {
+ if (entry.type == net::NetLog::TYPE_SOCKET_POOL_CONNECT_JOB &&
+ entry.phase == net::NetLog::PHASE_END) {
return ACTION_MOVE_TO_GRAVEYARD;
}
@@ -252,11 +260,10 @@
PassiveLogCollector::RequestTrackerBase::Action
PassiveLogCollector::RequestTracker::DoAddEntry(
- const net::NetLog::Entry& entry,
+ const net::CapturingNetLog::Entry& entry,
RequestInfo* out_info) {
- if (entry.type == net::NetLog::Entry::TYPE_EVENT &&
- entry.event.type == net::NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID) {
+ if (entry.type == net::NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID) {
// If this was notification that a ConnectJob was bound to the request,
// copy all the logged data for that ConnectJob.
AddConnectJobInfo(entry, out_info);
@@ -266,22 +273,19 @@
}
// If this was the start of a URLRequest/SocketStream, extract the URL.
- if (out_info->entries.size() == 1 &&
- entry.type == net::NetLog::Entry::TYPE_EVENT &&
- entry.event.type == net::NetLog::TYPE_REQUEST_ALIVE &&
- entry.event.phase == net::NetLog::PHASE_BEGIN) {
- out_info->url = entry.string;
- out_info->entries[0].string = std::string();
-
- // Paranoia check: truncate the URL if it is really big.
- if (out_info->url.size() > kMaxGraveyardURLSize)
- out_info->url = out_info->url.substr(0, kMaxGraveyardURLSize);
+ // Note: we look at the first *two* entries, since the outer REQUEST_ALIVE
+ // doesn't actually contain any data.
+ if (out_info->url.empty() && out_info->entries.size() <= 2 &&
+ entry.phase == net::NetLog::PHASE_BEGIN && entry.extra_parameters &&
+ (entry.type == net::NetLog::TYPE_URL_REQUEST_START ||
+ entry.type == net::NetLog::TYPE_SOCKET_STREAM_CONNECT)) {
+ out_info->url = static_cast<net::NetLogStringParameter*>(
+ entry.extra_parameters.get())->value();
}
// If the request has ended, move it to the graveyard.
- if (entry.type == net::NetLog::Entry::TYPE_EVENT &&
- entry.event.type == net::NetLog::TYPE_REQUEST_ALIVE &&
- entry.event.phase == net::NetLog::PHASE_END) {
+ if (entry.type == net::NetLog::TYPE_REQUEST_ALIVE &&
+ entry.phase == net::NetLog::PHASE_END) {
if (StartsWithASCII(out_info->url, "chrome://", false)) {
// Avoid sending "chrome://" requests to the graveyard, since it just
// adds to clutter.
@@ -294,15 +298,15 @@
}
void PassiveLogCollector::RequestTracker::AddConnectJobInfo(
- const net::NetLog::Entry& entry,
+ const net::CapturingNetLog::Entry& entry,
RequestInfo* live_entry) {
// We have just been notified of which ConnectJob the
// URLRequest/SocketStream was assigned. Lookup all the data we captured
// for the ConnectJob, and append it to the URLRequest/SocketStream's
// RequestInfo.
- // TODO(eroman): This should NOT be plumbed through via |error_code| !
- int connect_job_id = entry.error_code;
+ int connect_job_id = static_cast<net::NetLogIntegerParameter*>(
+ entry.extra_parameters.get())->value();
const RequestInfo* connect_job_info =
connect_job_tracker_->GetRequestInfoFromGraveyard(connect_job_id);
@@ -313,9 +317,10 @@
} else {
// If we couldn't find the information for the ConnectJob, append a
// generic message instead.
- net::NetLog::Entry e(entry);
- e.type = net::NetLog::Entry::TYPE_STRING;
- e.string = StringPrintf("Used ConnectJob id=%d", connect_job_id);
+ net::CapturingNetLog::Entry e(entry);
+ e.type = net::NetLog::TYPE_TODO_STRING;
+ e.extra_parameters = new net::NetLogStringParameter(
+ StringPrintf("Used ConnectJob id=%d", connect_job_id));
AddEntryToRequestInfo(e, is_unbounded(), live_entry);
}
}
@@ -327,10 +332,9 @@
PassiveLogCollector::InitProxyResolverTracker::InitProxyResolverTracker() {}
void PassiveLogCollector::InitProxyResolverTracker::OnAddEntry(
- const net::NetLog::Entry& entry) {
- if (entry.type == net::NetLog::Entry::TYPE_EVENT &&
- entry.event.type == net::NetLog::TYPE_INIT_PROXY_RESOLVER &&
- entry.event.phase == net::NetLog::PHASE_BEGIN) {
+ const net::CapturingNetLog::Entry& entry) {
+ if (entry.type == net::NetLog::TYPE_INIT_PROXY_RESOLVER &&
+ entry.phase == net::NetLog::PHASE_BEGIN) {
// If this is the start of a new InitProxyResolver, overwrite the old data.
entries_.clear();
entries_.push_back(entry);
« no previous file with comments | « chrome/browser/net/passive_log_collector.h ('k') | chrome/browser/net/passive_log_collector_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698