| Index: chrome/browser/autocomplete/autocomplete_edit.cc
|
| diff --git a/chrome/browser/autocomplete/autocomplete_edit.cc b/chrome/browser/autocomplete/autocomplete_edit.cc
|
| index cfb25cd7fef2d5d5624b20e4a087a6a5914c8591..fcf0dd8e5a3f5491428c2d1f1c5cfcbdea05aa83 100644
|
| --- a/chrome/browser/autocomplete/autocomplete_edit.cc
|
| +++ b/chrome/browser/autocomplete/autocomplete_edit.cc
|
| @@ -259,7 +259,7 @@ void AutocompleteEditModel::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);
|
| @@ -1099,23 +1099,23 @@ bool AutocompleteEditModel::DoInstant(const AutocompleteMatch& match,
|
| return false;
|
| }
|
|
|
| -void AutocompleteEditModel::DoPrerender(const AutocompleteMatch& match) {
|
| +void AutocompleteEditModel::DoPrerender(
|
| + AutocompleteActionPredictor* action_predictor,
|
| + const AutocompleteMatch& match) {
|
| + DCHECK(action_predictor);
|
| +
|
| // 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) {
|
| + if (TabContents* tab = controller_->GetTabContents()) {
|
| content::RenderViewHost* current_host =
|
| tab->web_contents()->GetRenderViewHost();
|
| - prerender_manager->AddPrerenderFromOmnibox(
|
| + prerender::PrerenderHandle prerender = action_predictor->StartPrerendering(
|
| match.destination_url, current_host->GetSessionStorageNamespace());
|
| + match.prerender = prerender->AsWeakPtr();
|
| }
|
| }
|
|
|
|
|