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

Unified Diff: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc

Issue 163963005: Fix prerender byte-count UMA. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed unnecessary NULL ptr conditionals Created 6 years, 10 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 | « chrome/browser/prerender/prerender_histograms.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
diff --git a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
index 8ef11b61230060f608e7e459c0b7d57f559ea698..71b1e444ee86ce5e55e4c502649774e94bb00a8f 100644
--- a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
+++ b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
@@ -128,6 +128,31 @@ prerender::PrerenderContents* FindPrerenderContents(int render_process_id,
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,
int render_view_id,
int64 bytes) {
@@ -136,11 +161,13 @@ void UpdatePrerenderNetworkBytesCallback(int render_process_id,
prerender::PrerenderContents* prerender_contents =
FindPrerenderContents(render_process_id, render_view_id);
- if (!prerender_contents)
- return;
- prerender_contents->AddNetworkBytes(bytes);
- prerender_contents->prerender_manager()->AddProfileNetworkBytesIfEnabled(
- bytes);
+ if (prerender_contents)
+ prerender_contents->AddNetworkBytes(bytes);
+
+ prerender::PrerenderManager* prerender_manager =
+ GetPrerenderManager(render_process_id, render_view_id);
+ if (prerender_manager)
+ prerender_manager->AddProfileNetworkBytesIfEnabled(bytes);
}
#if !defined(OS_ANDROID)
@@ -173,13 +200,8 @@ void SendExecuteMimeTypeHandlerEvent(scoped_ptr<content::StreamHandle> stream,
if (!web_contents)
return;
- content::BrowserContext* browser_context = web_contents->GetBrowserContext();
- if (!browser_context)
- return;
-
- Profile* profile = Profile::FromBrowserContext(browser_context);
- if (!profile)
- return;
+ Profile* profile =
+ Profile::FromBrowserContext(web_contents->GetBrowserContext());
StreamsPrivateAPI* streams_private = StreamsPrivateAPI::Get(profile);
if (!streams_private)
« no previous file with comments | « chrome/browser/prerender/prerender_histograms.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698