Chromium Code Reviews| 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) |