Commit 44078d9e authored by jkarlin@chromium.org's avatar jkarlin@chromium.org

Fix prerender byte-count UMA.

In the review process of cr/160513002 I wound up losing reports of bytes from non-prerender resources.  This fixes that.  It also updates the max bin size of profile bytes since there could be lots of requests between prerenders.

BUG=334602

Review URL: https://codereview.chromium.org/163963005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252125 0039d316-1c4b-4281-b951-d872f2087c98
parent 7cc1237a
...@@ -436,7 +436,7 @@ void PrerenderHistograms::RecordNetworkBytes(bool used, ...@@ -436,7 +436,7 @@ void PrerenderHistograms::RecordNetworkBytes(bool used,
UMA_HISTOGRAM_CUSTOM_COUNTS("Prerender.NetworkBytes.TotalForProfile", UMA_HISTOGRAM_CUSTOM_COUNTS("Prerender.NetworkBytes.TotalForProfile",
profile_bytes, profile_bytes,
kHistogramMin, kHistogramMin,
kHistogramMax, 1000000000, // 1G
kBucketCount); kBucketCount);
} }
......
...@@ -128,6 +128,31 @@ prerender::PrerenderContents* FindPrerenderContents(int render_process_id, ...@@ -128,6 +128,31 @@ prerender::PrerenderContents* FindPrerenderContents(int render_process_id,
return prerender::PrerenderContents::FromWebContents(web_contents); return prerender::PrerenderContents::FromWebContents(web_contents);
} }
prerender::PrerenderManager* GetPrerenderManager(int render_process_id,
int render_view_id) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
content::RenderViewHost* render_view_host =
content::RenderViewHost::FromID(render_process_id, render_view_id);
if (!render_view_host)
return NULL;
content::WebContents* web_contents =
content::WebContents::FromRenderViewHost(render_view_host);
if (!web_contents)
return NULL;
content::BrowserContext* browser_context = web_contents->GetBrowserContext();
if (!browser_context)
return NULL;
Profile* profile = Profile::FromBrowserContext(browser_context);
if (!profile)
return NULL;
return prerender::PrerenderManagerFactory::GetForProfile(profile);
}
void UpdatePrerenderNetworkBytesCallback(int render_process_id, void UpdatePrerenderNetworkBytesCallback(int render_process_id,
int render_view_id, int render_view_id,
int64 bytes) { int64 bytes) {
...@@ -136,11 +161,13 @@ void UpdatePrerenderNetworkBytesCallback(int render_process_id, ...@@ -136,11 +161,13 @@ void UpdatePrerenderNetworkBytesCallback(int render_process_id,
prerender::PrerenderContents* prerender_contents = prerender::PrerenderContents* prerender_contents =
FindPrerenderContents(render_process_id, render_view_id); FindPrerenderContents(render_process_id, render_view_id);
if (!prerender_contents) if (prerender_contents)
return; prerender_contents->AddNetworkBytes(bytes);
prerender_contents->AddNetworkBytes(bytes);
prerender_contents->prerender_manager()->AddProfileNetworkBytesIfEnabled( prerender::PrerenderManager* prerender_manager =
bytes); GetPrerenderManager(render_process_id, render_view_id);
if (prerender_manager)
prerender_manager->AddProfileNetworkBytesIfEnabled(bytes);
} }
#if !defined(OS_ANDROID) #if !defined(OS_ANDROID)
...@@ -173,13 +200,8 @@ void SendExecuteMimeTypeHandlerEvent(scoped_ptr<content::StreamHandle> stream, ...@@ -173,13 +200,8 @@ void SendExecuteMimeTypeHandlerEvent(scoped_ptr<content::StreamHandle> stream,
if (!web_contents) if (!web_contents)
return; return;
content::BrowserContext* browser_context = web_contents->GetBrowserContext(); Profile* profile =
if (!browser_context) Profile::FromBrowserContext(web_contents->GetBrowserContext());
return;
Profile* profile = Profile::FromBrowserContext(browser_context);
if (!profile)
return;
StreamsPrivateAPI* streams_private = StreamsPrivateAPI::Get(profile); StreamsPrivateAPI* streams_private = StreamsPrivateAPI::Get(profile);
if (!streams_private) if (!streams_private)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment