Index: chrome/browser/autocomplete/autocomplete_match.h |
=================================================================== |
--- chrome/browser/autocomplete/autocomplete_match.h (revision 148107) |
+++ chrome/browser/autocomplete/autocomplete_match.h (working copy) |
@@ -5,6 +5,7 @@ |
#ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_MATCH_H_ |
#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_MATCH_H_ |
+#include <map> |
#include <string> |
#include <vector> |
@@ -17,6 +18,10 @@ |
class Profile; |
class TemplateURL; |
+namespace base { |
+class Time; |
+} // namespace base |
+ |
// AutocompleteMatch ---------------------------------------------------------- |
// A single result line with classified spans. The autocomplete popup displays |
@@ -64,6 +69,10 @@ |
typedef std::vector<ACMatchClassification> ACMatchClassifications; |
+ // Type used by providers to attach additional, optional information to |
+ // an AutocompleteMatch. |
+ typedef std::map<std::string, std::string> AdditionalInfo; |
+ |
// The type of this match. |
enum Type { |
URL_WHAT_YOU_TYPED = 0, // The input as a URL. |
@@ -189,6 +198,13 @@ |
// TemplateURL. See comments on |keyword| below. |
TemplateURL* GetTemplateURL(Profile* profile) const; |
+ // Adds optional information to the |additional_info| dictionary. |
+ void RecordAdditionalInfo(const std::string& property, |
+ const std::string& value); |
+ void RecordAdditionalInfo(const std::string& property, int value); |
+ void RecordAdditionalInfo(const std::string& property, |
+ const base::Time& value); |
+ |
// The provider of this match, used to remember which provider the user had |
// selected when the input changes. This may be NULL, in which case there is |
// no provider (or memory of the user's selection). |
@@ -283,6 +299,10 @@ |
// AutocompleteController to do no additional transformations. |
scoped_ptr<TemplateURLRef::SearchTermsArgs> search_terms_args; |
+ // Information dictionary into which each provider can optionally record a |
+ // property and associated value and which is presented in chrome://omnibox. |
+ AdditionalInfo additional_info; |
+ |
#ifndef NDEBUG |
// Does a data integrity check on this match. |
void Validate() const; |