| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/net/passive_log_collector.h" | 5 #include "chrome/browser/net/passive_log_collector.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 //---------------------------------------------------------------------------- | 48 //---------------------------------------------------------------------------- |
| 49 // PassiveLogCollector | 49 // PassiveLogCollector |
| 50 //---------------------------------------------------------------------------- | 50 //---------------------------------------------------------------------------- |
| 51 | 51 |
| 52 PassiveLogCollector::PassiveLogCollector() | 52 PassiveLogCollector::PassiveLogCollector() |
| 53 : ThreadSafeObserver(net::NetLog::LOG_BASIC), | 53 : ThreadSafeObserver(net::NetLog::LOG_BASIC), |
| 54 ALLOW_THIS_IN_INITIALIZER_LIST(connect_job_tracker_(this)), | 54 ALLOW_THIS_IN_INITIALIZER_LIST(connect_job_tracker_(this)), |
| 55 ALLOW_THIS_IN_INITIALIZER_LIST(url_request_tracker_(this)), | 55 ALLOW_THIS_IN_INITIALIZER_LIST(url_request_tracker_(this)), |
| 56 ALLOW_THIS_IN_INITIALIZER_LIST(socket_stream_tracker_(this)), | 56 ALLOW_THIS_IN_INITIALIZER_LIST(socket_stream_tracker_(this)), |
| 57 ALLOW_THIS_IN_INITIALIZER_LIST(http_stream_job_tracker_(this)), | 57 ALLOW_THIS_IN_INITIALIZER_LIST(http_stream_job_tracker_(this)), |
| 58 ALLOW_THIS_IN_INITIALIZER_LIST( |
| 59 exponential_backoff_throttling_tracker_(this)), |
| 58 num_events_seen_(0) { | 60 num_events_seen_(0) { |
| 59 | 61 |
| 60 // Define the mapping between source types and the tracker objects. | 62 // Define the mapping between source types and the tracker objects. |
| 61 memset(&trackers_[0], 0, sizeof(trackers_)); | 63 memset(&trackers_[0], 0, sizeof(trackers_)); |
| 62 trackers_[net::NetLog::SOURCE_NONE] = &global_source_tracker_; | 64 trackers_[net::NetLog::SOURCE_NONE] = &global_source_tracker_; |
| 63 trackers_[net::NetLog::SOURCE_URL_REQUEST] = &url_request_tracker_; | 65 trackers_[net::NetLog::SOURCE_URL_REQUEST] = &url_request_tracker_; |
| 64 trackers_[net::NetLog::SOURCE_SOCKET_STREAM] = &socket_stream_tracker_; | 66 trackers_[net::NetLog::SOURCE_SOCKET_STREAM] = &socket_stream_tracker_; |
| 65 trackers_[net::NetLog::SOURCE_CONNECT_JOB] = &connect_job_tracker_; | 67 trackers_[net::NetLog::SOURCE_CONNECT_JOB] = &connect_job_tracker_; |
| 66 trackers_[net::NetLog::SOURCE_SOCKET] = &socket_tracker_; | 68 trackers_[net::NetLog::SOURCE_SOCKET] = &socket_tracker_; |
| 67 trackers_[net::NetLog::SOURCE_INIT_PROXY_RESOLVER] = | 69 trackers_[net::NetLog::SOURCE_INIT_PROXY_RESOLVER] = |
| 68 &init_proxy_resolver_tracker_; | 70 &init_proxy_resolver_tracker_; |
| 69 trackers_[net::NetLog::SOURCE_SPDY_SESSION] = &spdy_session_tracker_; | 71 trackers_[net::NetLog::SOURCE_SPDY_SESSION] = &spdy_session_tracker_; |
| 70 trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_REQUEST] = | 72 trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_REQUEST] = |
| 71 &dns_request_tracker_; | 73 &dns_request_tracker_; |
| 72 trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_JOB] = &dns_job_tracker_; | 74 trackers_[net::NetLog::SOURCE_HOST_RESOLVER_IMPL_JOB] = &dns_job_tracker_; |
| 73 trackers_[net::NetLog::SOURCE_DISK_CACHE_ENTRY] = &disk_cache_entry_tracker_; | 75 trackers_[net::NetLog::SOURCE_DISK_CACHE_ENTRY] = &disk_cache_entry_tracker_; |
| 74 trackers_[net::NetLog::SOURCE_MEMORY_CACHE_ENTRY] = &mem_cache_entry_tracker_; | 76 trackers_[net::NetLog::SOURCE_MEMORY_CACHE_ENTRY] = &mem_cache_entry_tracker_; |
| 75 trackers_[net::NetLog::SOURCE_HTTP_STREAM_JOB] = &http_stream_job_tracker_; | 77 trackers_[net::NetLog::SOURCE_HTTP_STREAM_JOB] = &http_stream_job_tracker_; |
| 78 trackers_[net::NetLog::SOURCE_EXPONENTIAL_BACKOFF_THROTTLING] = |
| 79 &exponential_backoff_throttling_tracker_; |
| 76 // Make sure our mapping is up-to-date. | 80 // Make sure our mapping is up-to-date. |
| 77 for (size_t i = 0; i < arraysize(trackers_); ++i) | 81 for (size_t i = 0; i < arraysize(trackers_); ++i) |
| 78 DCHECK(trackers_[i]) << "Unhandled SourceType: " << i; | 82 DCHECK(trackers_[i]) << "Unhandled SourceType: " << i; |
| 79 } | 83 } |
| 80 | 84 |
| 81 PassiveLogCollector::~PassiveLogCollector() { | 85 PassiveLogCollector::~PassiveLogCollector() { |
| 82 } | 86 } |
| 83 | 87 |
| 84 void PassiveLogCollector::OnAddEntry( | 88 void PassiveLogCollector::OnAddEntry( |
| 85 net::NetLog::EventType type, | 89 net::NetLog::EventType type, |
| (...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 AddEntryToSourceInfo(entry, out_info); | 641 AddEntryToSourceInfo(entry, out_info); |
| 638 | 642 |
| 639 // If the request has ended, move it to the graveyard. | 643 // If the request has ended, move it to the graveyard. |
| 640 if (entry.type == net::NetLog::TYPE_HTTP_STREAM_JOB && | 644 if (entry.type == net::NetLog::TYPE_HTTP_STREAM_JOB && |
| 641 entry.phase == net::NetLog::PHASE_END) { | 645 entry.phase == net::NetLog::PHASE_END) { |
| 642 return ACTION_MOVE_TO_GRAVEYARD; | 646 return ACTION_MOVE_TO_GRAVEYARD; |
| 643 } | 647 } |
| 644 | 648 |
| 645 return ACTION_NONE; | 649 return ACTION_NONE; |
| 646 } | 650 } |
| 651 |
| 652 //---------------------------------------------------------------------------- |
| 653 // ExponentialBackoffThrottlingTracker |
| 654 //---------------------------------------------------------------------------- |
| 655 |
| 656 const size_t PassiveLogCollector:: |
| 657 ExponentialBackoffThrottlingTracker::kMaxNumSources = 100; |
| 658 const size_t PassiveLogCollector:: |
| 659 ExponentialBackoffThrottlingTracker::kMaxGraveyardSize = 25; |
| 660 |
| 661 PassiveLogCollector:: |
| 662 ExponentialBackoffThrottlingTracker::ExponentialBackoffThrottlingTracker( |
| 663 PassiveLogCollector* parent) |
| 664 : SourceTracker(kMaxNumSources, kMaxGraveyardSize, parent) { |
| 665 } |
| 666 |
| 667 PassiveLogCollector::SourceTracker::Action |
| 668 PassiveLogCollector::ExponentialBackoffThrottlingTracker::DoAddEntry( |
| 669 const ChromeNetLog::Entry& entry, SourceInfo* out_info) { |
| 670 AddEntryToSourceInfo(entry, out_info); |
| 671 return ACTION_NONE; |
| 672 } |
| OLD | NEW |