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 f54de5dbcdf2d980ebc79b460e5a4cd4bf0de7dc..8fe00c68e3994c1b09a692f5b9d5f14bb9404b5d 100644 |
| --- a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc |
| +++ b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc |
| @@ -30,13 +30,18 @@ |
| #include "chrome/common/render_messages.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/notification_service.h" |
| +#include "content/public/browser/render_widget_host_view.h" |
|
mmenke
2012/05/01 16:23:21
nit: Alphabetize.
gavinp
2012/05/01 18:50:22
Done.
|
| #include "content/public/browser/render_view_host.h" |
| +#include "content/public/browser/render_view_host_delegate.h" |
| #include "content/public/browser/resource_context.h" |
| #include "content/public/browser/resource_dispatcher_host.h" |
| #include "content/public/browser/resource_request_info.h" |
| +#include "content/public/browser/web_contents.h" |
| +#include "content/public/browser/web_contents_view.h" |
| #include "net/base/load_flags.h" |
| #include "net/base/ssl_config_service.h" |
| #include "net/url_request/url_request.h" |
| +#include "ui/gfx/size.h" |
| // TODO(oshima): Enable this for other platforms. |
| #if defined(OS_CHROMEOS) |
| @@ -50,6 +55,8 @@ using content::ResourceRequestInfo; |
| namespace { |
| +// TODO(gavinp): Remove this after https://bugs.webkit.org/show_bug.cgi?id=85005 |
| +// lands in WebKit. |
| void AddPrerenderOnUI( |
| int render_process_id, int render_view_id, |
| const GURL& url, const content::Referrer& referrer) { |
| @@ -59,10 +66,20 @@ void AddPrerenderOnUI( |
| if (!prerender_manager) |
| return; |
| - prerender_manager->AddPrerenderFromLinkRelPrerender(render_process_id, |
| - render_view_id, |
| - url, |
| - referrer); |
| + RenderViewHost* render_view_host = |
| + RenderViewHost::FromID(render_process_id, render_view_id); |
| + if (!render_view_host) |
| + return; |
| + gfx::Rect tab_bounds; |
| + if (content::WebContents* source_wc = |
| + render_view_host->GetDelegate()->GetAsWebContents()) |
| + source_wc->GetView()->GetContainerBounds(&tab_bounds); |
| + prerender_manager->AddPrerenderFromLinkRelPrerender( |
| + render_process_id, render_view_id, url, referrer, |
| + !tab_bounds.IsEmpty() ? |
| + tab_bounds.size() : |
| + prerender_manager->config().default_tab_bounds.size(), |
| + render_view_host->GetSessionStorageNamespace()); |
| } |
| void NotifyDownloadInitiatedOnUI(int render_process_id, int render_view_id) { |