summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net/load_time_stats.h
diff options
context:
space:
mode:
authortburkard@chromium.org <tburkard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-14 20:26:25 +0000
committertburkard@chromium.org <tburkard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-14 20:26:25 +0000
commit2f078cdb0a4579146bd04a4c007000c7f588d1b2 (patch)
tree29c910a9a59d75927e453506d59214b888398cbc /chrome/browser/net/load_time_stats.h
parent0fd1bd0d3c7a256ffe35f25563bf3aa821ae6dec (diff)
downloadchromium_src-2f078cdb0a4579146bd04a4c007000c7f588d1b2.zip
chromium_src-2f078cdb0a4579146bd04a4c007000c7f588d1b2.tar.gz
chromium_src-2f078cdb0a4579146bd04a4c007000c7f588d1b2.tar.bz2
Per request load time stats.
R=cbentzel@chromium.org, rvargas@chromium.org BUG=149682 Review URL: https://codereview.chromium.org/10908252 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156872 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/net/load_time_stats.h')
-rw-r--r--chrome/browser/net/load_time_stats.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/browser/net/load_time_stats.h b/chrome/browser/net/load_time_stats.h
index 12d68dd..e390595 100644
--- a/chrome/browser/net/load_time_stats.h
+++ b/chrome/browser/net/load_time_stats.h
@@ -33,6 +33,12 @@ class URLRequestContext;
namespace BASE_HASH_NAMESPACE {
template <>
+struct hash<const net::URLRequest*> {
+ std::size_t operator()(const net::URLRequest* value) const {
+ return reinterpret_cast<std::size_t>(value);
+ }
+};
+template <>
struct hash<const net::URLRequestContext*> {
std::size_t operator()(const net::URLRequestContext* value) const {
return reinterpret_cast<std::size_t>(value);
@@ -71,6 +77,7 @@ class LoadTimeStats {
void OnRequestWaitStateChange(const net::URLRequest& request,
net::NetworkDelegate::RequestWaitState state);
+ void OnURLRequestDestroyed(const net::URLRequest& request);
void OnTabEvent(std::pair<int, int> render_view_id, TabEvent event);
void RegisterURLRequestContext(const net::URLRequestContext* context,
ChromeURLRequestContext::ContextType type);
@@ -82,6 +89,12 @@ class LoadTimeStats {
// representing that renderer's load statistics.
typedef std::map<std::pair<int, int>, TabLoadStats*> TabLoadStatsMap;
+ class URLRequestStats;
+ typedef base::hash_map<const net::URLRequest*,
+ URLRequestStats*> RequestStatsMap;
+
+ // Gets RequestStats for a given request.
+ URLRequestStats* GetRequestStats(const net::URLRequest* request);
// Gets TabLoadStats for a given RenderView.
TabLoadStats* GetTabLoadStats(std::pair<int, int> render_view_id);
// Deletes TabLoadStats no longer needed for a render view.
@@ -98,6 +111,7 @@ class LoadTimeStats {
bool is_load_done);
TabLoadStatsMap tab_load_stats_;
+ RequestStatsMap request_stats_;
std::vector<base::Histogram*> histograms_[REQUEST_STATUS_MAX][HISTOGRAM_MAX];
base::hash_set<const net::URLRequestContext*> main_request_contexts_;