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

Unified Diff: net/url_request/url_request_context.cc

Issue 2837313002: Add UMA to track the number of live URLRequests. (Closed)
Patch Set: use mutable Created 3 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 | « net/url_request/url_request_context.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/url_request/url_request_context.cc
diff --git a/net/url_request/url_request_context.cc b/net/url_request/url_request_context.cc
index 0ec1db63efcd31e5648fe898b009bf4dda0b5730..c7e44779ca906c5423145e2ffb66d82166427df3 100644
--- a/net/url_request/url_request_context.cc
+++ b/net/url_request/url_request_context.cc
@@ -9,6 +9,7 @@
#include "base/compiler_specific.h"
#include "base/debug/alias.h"
#include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_macros.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/threading/thread_task_runner_handle.h"
@@ -48,10 +49,10 @@ URLRequestContext::URLRequestContext()
sdch_manager_(nullptr),
network_quality_estimator_(nullptr),
reporting_service_(nullptr),
- url_requests_(new std::set<const URLRequest*>),
enable_brotli_(false),
check_cleartext_permitted_(false),
- name_(nullptr) {
+ name_(nullptr),
+ largest_outstanding_requests_count_seen_(0) {
base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
this, "URLRequestContext", base::ThreadTaskRunnerHandle::Get());
}
@@ -122,13 +123,27 @@ void URLRequestContext::set_cookie_store(CookieStore* cookie_store) {
cookie_store_ = cookie_store;
}
+void URLRequestContext::InsertURLRequest(const URLRequest* request) const {
+ url_requests_.insert(request);
+ if (url_requests_.size() > largest_outstanding_requests_count_seen_) {
+ largest_outstanding_requests_count_seen_ = url_requests_.size();
+ UMA_HISTOGRAM_COUNTS_1M("Net.URLRequestContext.OutstandingRequests",
+ largest_outstanding_requests_count_seen_);
+ }
+}
+
+void URLRequestContext::RemoveURLRequest(const URLRequest* request) const {
+ DCHECK_EQ(1u, url_requests_.count(request));
+ url_requests_.erase(request);
+}
+
void URLRequestContext::AssertNoURLRequests() const {
- int num_requests = url_requests_->size();
+ int num_requests = url_requests_.size();
if (num_requests != 0) {
// We're leaking URLRequests :( Dump the URL of the first one and record how
// many we leaked so we have an idea of how bad it is.
char url_buf[128];
- const URLRequest* request = *url_requests_->begin();
+ const URLRequest* request = *url_requests_.begin();
base::strlcpy(url_buf, request->url().spec().c_str(), arraysize(url_buf));
int load_flags = request->load_flags();
base::debug::Alias(url_buf);
@@ -154,7 +169,7 @@ bool URLRequestContext::OnMemoryDump(
pmd->CreateAllocatorDump(dump_name);
dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectCount,
base::trace_event::MemoryAllocatorDump::kUnitsObjects,
- url_requests_->size());
+ url_requests_.size());
HttpTransactionFactory* transaction_factory = http_transaction_factory();
if (transaction_factory) {
HttpNetworkSession* network_session = transaction_factory->GetSession();
« no previous file with comments | « net/url_request/url_request_context.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698