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..7ce76456e9e494b2ff743b9d51109c2b0261565f 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) |
jochen (gone - plz use gerrit)
2014/02/19 16:54:24
when is that possible?
jkarlin
2014/02/19 17:31:58
Nearly everything that calls RenderViewHost::FromI
|
+ 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; |
jochen (gone - plz use gerrit)
2014/02/19 16:54:24
or this?
jkarlin
2014/02/19 17:31:58
Done.
|
+ |
+ Profile* profile = Profile::FromBrowserContext(browser_context); |
+ if (!profile) |
+ return NULL; |
jochen (gone - plz use gerrit)
2014/02/19 16:54:24
or this?
jkarlin
2014/02/19 17:31:58
Done.
|
+ |
+ 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) |