Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5837)

Unified Diff: chrome/browser/autocomplete/autocomplete_edit.cc

Issue 10553029: Handle interface to prerenders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}
}

Powered by Google App Engine
This is Rietveld 408576698