Index: chrome/browser/autocomplete/network_action_predictor.h |
diff --git a/chrome/browser/autocomplete/network_action_predictor.h b/chrome/browser/autocomplete/network_action_predictor.h |
index 60d710a32746d9902c2d0c9e4fa855b8222aefb5..7185d797cad31951ec000aea7299bd4d92eedc77 100644 |
--- a/chrome/browser/autocomplete/network_action_predictor.h |
+++ b/chrome/browser/autocomplete/network_action_predictor.h |
@@ -17,7 +17,9 @@ |
#include "content/public/browser/notification_registrar.h" |
#include "googleurl/src/gurl.h" |
+struct AutocompleteLog; |
struct AutocompleteMatch; |
+class AutocompleteResult; |
class HistoryService; |
class Profile; |
@@ -47,6 +49,16 @@ class NetworkActionPredictor |
explicit NetworkActionPredictor(Profile* profile); |
virtual ~NetworkActionPredictor(); |
+ // Registers an AutocompleteResult for a given |user_text|. This will be used |
+ // when the user navigates from the Omnibox to determine early opportunities |
+ // to predict their actions. |
+ void RegisterTransitionalMatches(const string16& user_text, |
+ const AutocompleteResult& result); |
+ |
+ // Clears any transitional matches that have been registered. Called when, for |
+ // example, the AutocompleteEditModel is reverted. |
+ void ClearTransitionalMatches(); |
+ |
// Return the recommended action given |user_text|, the text the user has |
// entered in the Omnibox, and |match|, the suggestion from Autocomplete. |
// This method uses information from the ShortcutsBackend including how much |
@@ -63,6 +75,15 @@ class NetworkActionPredictor |
private: |
friend class NetworkActionPredictorTest; |
+ struct TransitionalMatch { |
+ string16 user_text; |
+ std::vector<GURL> urls; |
+ |
+ bool operator==(const string16& other_user_text) const { |
+ return user_text.compare(other_user_text) == 0; |
Peter Kasting
2011/11/18 21:17:13
Nit: Just return user_text == other_user_text. Ju
dominich
2011/11/18 23:05:51
Done.
|
+ } |
+ }; |
+ |
struct DBCacheKey { |
string16 user_text; |
GURL url; |
@@ -93,6 +114,9 @@ class NetworkActionPredictor |
const content::NotificationSource& source, |
const content::NotificationDetails& details) OVERRIDE; |
+ // Called when NOTIFICATION_OMNIBOX_OPENED_URL is observed. |
+ void OnOmniboxOpenedUrl(const AutocompleteLog& log); |
+ |
// Deletes any old or invalid entries from the local caches. |url_db| and |
// |id_list| must not be NULL. Every row id deleted will be added to id_list. |
void DeleteOldIdsFromCaches( |
@@ -140,6 +164,9 @@ class NetworkActionPredictor |
scoped_refptr<NetworkActionPredictorDatabase> db_; |
content::NotificationRegistrar notification_registrar_; |
+ // This is cleared after every Omnibox navigation. |
+ std::vector<TransitionalMatch> transitional_matches_; |
+ |
DBCacheMap db_cache_; |
DBIdCacheMap db_id_cache_; |