diff options
author | tburkard@chromium.org <tburkard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-14 20:26:25 +0000 |
---|---|---|
committer | tburkard@chromium.org <tburkard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-14 20:26:25 +0000 |
commit | 2f078cdb0a4579146bd04a4c007000c7f588d1b2 (patch) | |
tree | 29c910a9a59d75927e453506d59214b888398cbc /chrome/browser/net/load_time_stats.h | |
parent | 0fd1bd0d3c7a256ffe35f25563bf3aa821ae6dec (diff) | |
download | chromium_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.h | 14 |
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_; |