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 e42d46536b0c5e052e51143d654283de0ce3fdf8..51a6dbf7366d6fc292d49763c3a3c7032b9eb2b6 100644 |
--- a/net/url_request/url_request_context.cc |
+++ b/net/url_request/url_request_context.cc |
@@ -5,11 +5,13 @@ |
#include "net/url_request/url_request_context.h" |
#include "base/compiler_specific.h" |
+#include "base/debug/alias.h" |
#include "base/string_util.h" |
#include "net/base/host_resolver.h" |
#include "net/cookies/cookie_store.h" |
#include "net/ftp/ftp_transaction_factory.h" |
#include "net/http/http_transaction_factory.h" |
+#include "net/url_request/url_request.h" |
namespace net { |
@@ -28,7 +30,8 @@ URLRequestContext::URLRequestContext() |
ftp_auth_cache_(new FtpAuthCache), |
http_transaction_factory_(NULL), |
ftp_transaction_factory_(NULL), |
- job_factory_(NULL) { |
+ job_factory_(NULL), |
+ url_requests_(new std::set<const URLRequest*>) { |
} |
void URLRequestContext::CopyFrom(URLRequestContext* other) { |
@@ -63,6 +66,17 @@ const std::string& URLRequestContext::GetUserAgent(const GURL& url) const { |
} |
URLRequestContext::~URLRequestContext() { |
+ 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(); |
+ base::strlcpy(url_buf, request->url().spec().c_str(), arraysize(url_buf)); |
+ base::debug::Alias(url_buf); |
+ base::debug::Alias(&num_requests); |
+ CHECK(false); |
+ } |
} |
} // namespace net |