| Index: chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| diff --git a/chrome/browser/ui/omnibox/omnibox_edit_model.cc b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| index 9c0ddd5173c257666d555c76faf7a1b4d49820d9..8e28e91be620e3183d0b8b522d95a71b5ecd7160 100644
|
| --- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| +++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| @@ -248,7 +248,7 @@ void OmniboxEditModel::OnChanged() {
|
| } else {
|
| switch (recommended_action) {
|
| case AutocompleteActionPredictor::ACTION_PRERENDER:
|
| - DoPrerender(current_match);
|
| + DoPrerender(action_predictor, current_match);
|
| break;
|
| case AutocompleteActionPredictor::ACTION_PRECONNECT:
|
| DoPreconnect(current_match);
|
| @@ -1094,28 +1094,25 @@ bool OmniboxEditModel::DoInstant(const AutocompleteMatch& match,
|
| return false;
|
| }
|
|
|
| -void OmniboxEditModel::DoPrerender(const AutocompleteMatch& match) {
|
| +void OmniboxEditModel::DoPrerender(
|
| + AutocompleteActionPredictor* action_predictor,
|
| + const AutocompleteMatch& match) {
|
| // Do not prerender if the destination URL is the same as the current URL.
|
| if (match.destination_url == PermanentURL())
|
| return;
|
| // It's possible the tab strip does not have an active tab contents, for
|
| // instance if the tab has been closed or on return from a sleep state
|
| // (http://crbug.com/105689)
|
| - TabContents* tab = controller_->GetTabContents();
|
| - if (!tab)
|
| - return;
|
| - prerender::PrerenderManager* prerender_manager =
|
| - prerender::PrerenderManagerFactory::GetForProfile(tab->profile());
|
| - if (!prerender_manager)
|
| - return;
|
|
|
| - content::RenderViewHost* current_host =
|
| - tab->web_contents()->GetRenderViewHost();
|
| - gfx::Rect container_bounds;
|
| - tab->web_contents()->GetView()->GetContainerBounds(&container_bounds);
|
| - prerender_manager->AddPrerenderFromOmnibox(
|
| - match.destination_url, current_host->GetSessionStorageNamespace(),
|
| - container_bounds.size());
|
| + if (TabContents* tab = controller_->GetTabContents()) {
|
| + gfx::Rect container_bounds;
|
| + tab->web_contents()->GetView()->GetContainerBounds(&container_bounds);
|
| + content::RenderViewHost* current_host =
|
| + tab->web_contents()->GetRenderViewHost();
|
| + action_predictor->StartPrerendering(
|
| + match.destination_url,
|
| + current_host->GetSessionStorageNamespace(), container_bounds.size());
|
| + }
|
| }
|
|
|
| void OmniboxEditModel::DoPreconnect(const AutocompleteMatch& match) {
|
|
|