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

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

Issue 9226037: Cancel prerenders from Omnibox if we navigate to a different URL than predicted (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove debug logging Created 8 years, 11 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/network_action_predictor.cc
diff --git a/chrome/browser/autocomplete/network_action_predictor.cc b/chrome/browser/autocomplete/network_action_predictor.cc
index b43ee3c0167eaa6e4d10d2c8e22c1b400a202b08..12d9729e420da2ba7af6d614bc52c6a71bc49ccf 100644
--- a/chrome/browser/autocomplete/network_action_predictor.cc
+++ b/chrome/browser/autocomplete/network_action_predictor.cc
@@ -20,6 +20,8 @@
#include "chrome/browser/history/history_notifications.h"
#include "chrome/browser/history/in_memory_database.h"
#include "chrome/browser/prerender/prerender_field_trial.h"
+#include "chrome/browser/prerender/prerender_manager.h"
+#include "chrome/browser/prerender/prerender_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/guid.h"
@@ -235,6 +237,13 @@ void NetworkActionPredictor::OnOmniboxOpenedUrl(const AutocompleteLog& log) {
const GURL& opened_url = match.destination_url;
+ // If the Omnibox triggered a prerender but the URL doesn't match the one the
+ // user is navigating to, cancel the prerender.
+ prerender::PrerenderManager* prerender_manager =
Peter Kasting 2012/01/21 00:22:52 Nit: Does it make sense to keep this as a member?
dominich 2012/01/23 22:50:07 I prefer not to. It can't go away unexpectedly cur
+ prerender::PrerenderManagerFactory::GetForProfile(profile_);
+ if (prerender_manager && !prerender_manager->IsPrerendering(opened_url))
Peter Kasting 2012/01/21 00:22:52 When is the manager NULL? During testing? (I try
cbentzel 2012/01/21 02:29:09 Right now we do NULL prerender_managers for incogn
Peter Kasting 2012/01/21 22:46:07 Ah. Perhaps this should get a "// |prerender_mana
dominich 2012/01/23 22:50:07 Done.
+ prerender_manager->CancelOmniboxPrerenders();
+
const string16 lower_user_text(base::i18n::ToLower(log.text));
BeginTransaction();
@@ -291,7 +300,6 @@ void NetworkActionPredictor::OnOmniboxOpenedUrl(const AutocompleteLog& log) {
tracked_urls_.clear();
}
-
void NetworkActionPredictor::DeleteOldIdsFromCaches(
history::URLDatabase* url_db,
std::vector<NetworkActionPredictorDatabase::Row::Id>* id_list) {
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_manager.h » ('j') | chrome/browser/prerender/prerender_manager.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698