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) { |