| Index: chrome/browser/net/passive_log_collector.cc
|
| diff --git a/chrome/browser/net/passive_log_collector.cc b/chrome/browser/net/passive_log_collector.cc
|
| index 8ac8e5321ea20cc2c6d6d8a9d840190f5bfb7319..a4f8b5b89dd52d254e7e6be0b083d1fa5bd0e09c 100644
|
| --- a/chrome/browser/net/passive_log_collector.cc
|
| +++ b/chrome/browser/net/passive_log_collector.cc
|
| @@ -54,6 +54,7 @@ PassiveLogCollector::PassiveLogCollector()
|
| 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)),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(http_stream_job_tracker_(this)),
|
| num_events_seen_(0) {
|
|
|
| // Define the mapping between source types and the tracker objects.
|
| @@ -70,6 +71,7 @@ PassiveLogCollector::PassiveLogCollector()
|
| &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_;
|
| + trackers_[net::NetLog::SOURCE_HTTP_STREAM_JOB] = &http_stream_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;
|
| @@ -345,8 +347,7 @@ void PassiveLogCollector::SourceTracker::AddReferenceToSourceDependency(
|
| info->dependencies.push_back(source);
|
| }
|
|
|
| -void
|
| -PassiveLogCollector::SourceTracker::ReleaseAllReferencesToDependencies(
|
| +void PassiveLogCollector::SourceTracker::ReleaseAllReferencesToDependencies(
|
| SourceInfo* info) {
|
| // Release all references |info| was holding to other sources.
|
| for (SourceDependencyList::const_iterator it = info->dependencies.begin();
|
| @@ -445,8 +446,7 @@ PassiveLogCollector::RequestTracker::RequestTracker(PassiveLogCollector* parent)
|
| PassiveLogCollector::SourceTracker::Action
|
| PassiveLogCollector::RequestTracker::DoAddEntry(
|
| const ChromeNetLog::Entry& entry, SourceInfo* out_info) {
|
| - if (entry.type == net::NetLog::TYPE_SOCKET_POOL_BOUND_TO_CONNECT_JOB ||
|
| - entry.type == net::NetLog::TYPE_SOCKET_POOL_BOUND_TO_SOCKET) {
|
| + if (entry.type == net::NetLog::TYPE_HTTP_STREAM_REQUEST_BOUND_TO_JOB) {
|
| const net::NetLog::Source& source_dependency =
|
| static_cast<net::NetLogSourceParameter*>(entry.params.get())->value();
|
| AddReferenceToSourceDependency(source_dependency, out_info);
|
| @@ -585,3 +585,36 @@ PassiveLogCollector::DiskCacheEntryTracker::DoAddEntry(
|
|
|
| return ACTION_NONE;
|
| }
|
| +
|
| +//----------------------------------------------------------------------------
|
| +// HttpStreamJobTracker
|
| +//----------------------------------------------------------------------------
|
| +
|
| +const size_t PassiveLogCollector::HttpStreamJobTracker::kMaxNumSources = 100;
|
| +const size_t PassiveLogCollector::HttpStreamJobTracker::kMaxGraveyardSize = 25;
|
| +
|
| +PassiveLogCollector::HttpStreamJobTracker::HttpStreamJobTracker(
|
| + PassiveLogCollector* parent)
|
| + : SourceTracker(kMaxNumSources, kMaxGraveyardSize, parent) {
|
| +}
|
| +
|
| +PassiveLogCollector::SourceTracker::Action
|
| +PassiveLogCollector::HttpStreamJobTracker::DoAddEntry(
|
| + const ChromeNetLog::Entry& entry, SourceInfo* out_info) {
|
| + if (entry.type == net::NetLog::TYPE_SOCKET_POOL_BOUND_TO_CONNECT_JOB ||
|
| + entry.type == net::NetLog::TYPE_SOCKET_POOL_BOUND_TO_SOCKET) {
|
| + const net::NetLog::Source& source_dependency =
|
| + static_cast<net::NetLogSourceParameter*>(entry.params.get())->value();
|
| + AddReferenceToSourceDependency(source_dependency, out_info);
|
| + }
|
| +
|
| + AddEntryToSourceInfo(entry, out_info);
|
| +
|
| + // If the request has ended, move it to the graveyard.
|
| + if (entry.type == net::NetLog::TYPE_HTTP_STREAM_JOB &&
|
| + entry.phase == net::NetLog::PHASE_END) {
|
| + return ACTION_MOVE_TO_GRAVEYARD;
|
| + }
|
| +
|
| + return ACTION_NONE;
|
| +}
|
|
|