Move AutocompleteMatch::Type enum to chrome/common/autocomplete_match_type.h 

Move AutocompleteMatch::TypeToString() to chrome/common/autocomplete_match_type.h

BUG=239173
TEST=none
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]

Review URL: https://chromiumcodereview.appspot.com/14672014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201221 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/autocomplete/autocomplete_browsertest.cc b/chrome/browser/autocomplete/autocomplete_browsertest.cc
index f45eedf..f2e653b 100644
--- a/chrome/browser/autocomplete/autocomplete_browsertest.cc
+++ b/chrome/browser/autocomplete/autocomplete_browsertest.cc
@@ -136,7 +136,7 @@
     // about the other match existing.
     ASSERT_GE(result.size(), 1U) << AutocompleteResultAsString(result);
     AutocompleteMatch match = result.match_at(0);
-    EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type);
+    EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, match.type);
     EXPECT_FALSE(match.deletable);
   }
 
diff --git a/chrome/browser/autocomplete/autocomplete_controller.cc b/chrome/browser/autocomplete/autocomplete_controller.cc
index 3d67031..061542eb 100644
--- a/chrome/browser/autocomplete/autocomplete_controller.cc
+++ b/chrome/browser/autocomplete/autocomplete_controller.cc
@@ -54,43 +54,43 @@
   *subtype = string16::npos;
 
   switch (match) {
-    case AutocompleteMatch::SEARCH_SUGGEST: {
+    case AutocompleteMatchType::SEARCH_SUGGEST: {
       *type = 0;
       return;
     }
-    case AutocompleteMatch::NAVSUGGEST: {
+    case AutocompleteMatchType::NAVSUGGEST: {
       *type = 5;
       return;
     }
-    case AutocompleteMatch::SEARCH_WHAT_YOU_TYPED: {
+    case AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED: {
       *subtype = 57;
       return;
     }
-    case AutocompleteMatch::URL_WHAT_YOU_TYPED: {
+    case AutocompleteMatchType::URL_WHAT_YOU_TYPED: {
       *subtype = 58;
       return;
     }
-    case AutocompleteMatch::SEARCH_HISTORY: {
+    case AutocompleteMatchType::SEARCH_HISTORY: {
       *subtype = 59;
       return;
     }
-    case AutocompleteMatch::HISTORY_URL: {
+    case AutocompleteMatchType::HISTORY_URL: {
       *subtype = 60;
       return;
     }
-    case AutocompleteMatch::HISTORY_TITLE: {
+    case AutocompleteMatchType::HISTORY_TITLE: {
       *subtype = 61;
       return;
     }
-    case AutocompleteMatch::HISTORY_BODY: {
+    case AutocompleteMatchType::HISTORY_BODY: {
       *subtype = 62;
       return;
     }
-    case AutocompleteMatch::HISTORY_KEYWORD: {
+    case AutocompleteMatchType::HISTORY_KEYWORD: {
       *subtype = 63;
       return;
     }
-    case AutocompleteMatch::BOOKMARK_TITLE: {
+    case AutocompleteMatchType::BOOKMARK_TITLE: {
       *subtype = 65;
       return;
     }
diff --git a/chrome/browser/autocomplete/autocomplete_match.cc b/chrome/browser/autocomplete/autocomplete_match.cc
index 77041f24..9e9dd72 100644
--- a/chrome/browser/autocomplete/autocomplete_match.cc
+++ b/chrome/browser/autocomplete/autocomplete_match.cc
@@ -47,7 +47,7 @@
       inline_autocomplete_offset(string16::npos),
       transition(content::PAGE_TRANSITION_GENERATED),
       is_history_what_you_typed_match(false),
-      type(SEARCH_WHAT_YOU_TYPED),
+      type(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED),
       starred(false),
       from_previous(false) {
 }
@@ -130,28 +130,6 @@
 }
 
 // static
-std::string AutocompleteMatch::TypeToString(Type type) {
-  const char* strings[] = {
-    "url-what-you-typed",
-    "history-url",
-    "history-title",
-    "history-body",
-    "history-keyword",
-    "navsuggest",
-    "search-what-you-typed",
-    "search-history",
-    "search-suggest",
-    "search-other-engine",
-    "extension-app",
-    "contact",
-    "bookmark-title",
-  };
-  COMPILE_ASSERT(arraysize(strings) == NUM_TYPES,
-                 strings_array_must_match_type_enum);
-  return strings[type];
-}
-
-// static
 int AutocompleteMatch::TypeToIcon(Type type) {
   int icons[] = {
     IDR_OMNIBOX_HTTP,
@@ -170,7 +148,7 @@
     IDR_OMNIBOX_SEARCH,
     IDR_OMNIBOX_HTTP,
   };
-  COMPILE_ASSERT(arraysize(icons) == NUM_TYPES,
+  COMPILE_ASSERT(arraysize(icons) == AutocompleteMatchType::NUM_TYPES,
                  icons_array_must_match_type_enum);
   return icons[type];
 }
@@ -352,10 +330,10 @@
 
 // static
 bool AutocompleteMatch::IsSearchType(Type type) {
-  return type == SEARCH_WHAT_YOU_TYPED ||
-         type == SEARCH_HISTORY ||
-         type == SEARCH_SUGGEST ||
-         type == SEARCH_OTHER_ENGINE;
+  return type == AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED ||
+         type == AutocompleteMatchType::SEARCH_HISTORY ||
+         type == AutocompleteMatchType::SEARCH_SUGGEST ||
+         type == AutocompleteMatchType::SEARCH_OTHER_ENGINE;
 }
 
 void AutocompleteMatch::ComputeStrippedDestinationURL(Profile* profile) {
diff --git a/chrome/browser/autocomplete/autocomplete_match.h b/chrome/browser/autocomplete/autocomplete_match.h
index 3e7c208..146586e 100644
--- a/chrome/browser/autocomplete/autocomplete_match.h
+++ b/chrome/browser/autocomplete/autocomplete_match.h
@@ -11,6 +11,7 @@
 
 #include "base/memory/scoped_ptr.h"
 #include "chrome/browser/search_engines/template_url.h"
+#include "chrome/common/autocomplete_match_type.h"
 #include "content/public/common/page_transition_types.h"
 #include "googleurl/src/gurl.h"
 
@@ -74,25 +75,7 @@
   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.
-    HISTORY_URL,             // A past page whose URL contains the input.
-    HISTORY_TITLE,           // A past page whose title contains the input.
-    HISTORY_BODY,            // A past page whose body contains the input.
-    HISTORY_KEYWORD,         // A past page whose keyword contains the input.
-    NAVSUGGEST,              // A suggested URL.
-    SEARCH_WHAT_YOU_TYPED,   // The input as a search query (with the default
-                             // engine).
-    SEARCH_HISTORY,          // A past search (with the default engine)
-                             // containing the input.
-    SEARCH_SUGGEST,          // A suggested search (with the default engine).
-    SEARCH_OTHER_ENGINE,     // A search with a non-default engine.
-    EXTENSION_APP,           // An Extension App with a title/url that contains
-                             // the input.
-    CONTACT,                 // One of the user's contacts.
-    BOOKMARK_TITLE,          // A bookmark whose title contains the input.
-    NUM_TYPES,
-  };
+  typedef AutocompleteMatchType::Type Type;
 
   // Null-terminated array of characters that are not valid within |contents|
   // and |description| strings.
@@ -109,9 +92,6 @@
   // Converts |type| to a string representation.  Used in logging and debugging.
   AutocompleteMatch& operator=(const AutocompleteMatch& match);
 
-  // Converts |type| to a string representation.  Used in logging.
-  static std::string TypeToString(Type type);
-
   // Converts |type| to a resource identifier for the appropriate icon for this
   // type to show in the completion popup.
   static int TypeToIcon(Type type);
diff --git a/chrome/browser/autocomplete/autocomplete_match_unittest.cc b/chrome/browser/autocomplete/autocomplete_match_unittest.cc
index 1d0e4d2d..8e9dcd2 100644
--- a/chrome/browser/autocomplete/autocomplete_match_unittest.cc
+++ b/chrome/browser/autocomplete/autocomplete_match_unittest.cc
@@ -21,8 +21,10 @@
     {  -5, -10, true },
   };
 
-  AutocompleteMatch m1(NULL, 0, false, AutocompleteMatch::URL_WHAT_YOU_TYPED);
-  AutocompleteMatch m2(NULL, 0, false, AutocompleteMatch::URL_WHAT_YOU_TYPED);
+  AutocompleteMatch m1(NULL, 0, false,
+                       AutocompleteMatchType::URL_WHAT_YOU_TYPED);
+  AutocompleteMatch m2(NULL, 0, false,
+                       AutocompleteMatchType::URL_WHAT_YOU_TYPED);
 
   for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
     m1.relevance = cases[i].r1;
diff --git a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
index 54626592..d16ac4d 100644
--- a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
+++ b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
@@ -85,13 +85,13 @@
   // Generate 4 results synchronously, the rest later.
   AddResults(0, 1);
   AddResultsWithSearchTermsArgs(
-      1, 1, AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+      1, 1, AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
       TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("echo")));
   AddResultsWithSearchTermsArgs(
-      2, 1, AutocompleteMatch::NAVSUGGEST,
+      2, 1, AutocompleteMatchType::NAVSUGGEST,
       TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("nav")));
   AddResultsWithSearchTermsArgs(
-      3, 1, AutocompleteMatch::SEARCH_SUGGEST,
+      3, 1, AutocompleteMatchType::SEARCH_SUGGEST,
       TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("query")));
 
   if (input.matches_requested() == AutocompleteInput::ALL_MATCHES) {
@@ -112,7 +112,7 @@
 void TestProvider::AddResults(int start_at, int num) {
   AddResultsWithSearchTermsArgs(start_at,
                                 num,
-                                AutocompleteMatch::URL_WHAT_YOU_TYPED,
+                                AutocompleteMatchType::URL_WHAT_YOU_TYPED,
                                 TemplateURLRef::SearchTermsArgs(string16()));
 }
 
@@ -411,8 +411,8 @@
   EXPECT_EQ(AutocompleteProvider::TYPE_SEARCH,
       controller_->result().default_match()->provider->type());
   EXPECT_EQ(allow_exact_keyword_match ?
-      AutocompleteMatch::SEARCH_OTHER_ENGINE :
-      AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+      AutocompleteMatchType::SEARCH_OTHER_ENGINE :
+      AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
       controller_->result().default_match()->type);
 }
 
@@ -528,7 +528,7 @@
   {
     AssistedQueryStatsTestData test_data[] = {
       //  MSVC doesn't support zero-length arrays, so supply some dummy data.
-      { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, "" }
+      { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "" }
     };
     SCOPED_TRACE("No matches");
     // Note: We pass 0 here to ignore the dummy data above.
@@ -537,7 +537,7 @@
 
   {
     AssistedQueryStatsTestData test_data[] = {
-      { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, "chrome.0.69i57" }
+      { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "chrome.0.69i57" }
     };
     SCOPED_TRACE("One match");
     RunAssistedQueryStatsTest(test_data, ARRAYSIZE_UNSAFE(test_data));
@@ -545,21 +545,21 @@
 
   {
     AssistedQueryStatsTestData test_data[] = {
-      { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+      { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
         "chrome.0.69i57j69i58j5l2j0l3j69i59" },
-      { AutocompleteMatch::URL_WHAT_YOU_TYPED,
+      { AutocompleteMatchType::URL_WHAT_YOU_TYPED,
         "chrome.1.69i57j69i58j5l2j0l3j69i59" },
-      { AutocompleteMatch::NAVSUGGEST,
+      { AutocompleteMatchType::NAVSUGGEST,
         "chrome.2.69i57j69i58j5l2j0l3j69i59" },
-      { AutocompleteMatch::NAVSUGGEST,
+      { AutocompleteMatchType::NAVSUGGEST,
         "chrome.3.69i57j69i58j5l2j0l3j69i59" },
-      { AutocompleteMatch::SEARCH_SUGGEST,
+      { AutocompleteMatchType::SEARCH_SUGGEST,
         "chrome.4.69i57j69i58j5l2j0l3j69i59" },
-      { AutocompleteMatch::SEARCH_SUGGEST,
+      { AutocompleteMatchType::SEARCH_SUGGEST,
         "chrome.5.69i57j69i58j5l2j0l3j69i59" },
-      { AutocompleteMatch::SEARCH_SUGGEST,
+      { AutocompleteMatchType::SEARCH_SUGGEST,
         "chrome.6.69i57j69i58j5l2j0l3j69i59" },
-      { AutocompleteMatch::SEARCH_HISTORY,
+      { AutocompleteMatchType::SEARCH_HISTORY,
         "chrome.7.69i57j69i58j5l2j0l3j69i59" },
     };
     SCOPED_TRACE("Multiple matches");
@@ -573,7 +573,7 @@
   // For the destination URL to have aqs parameters for query formulation time
   // and the field trial triggered bit, many conditions need to be satisfied.
   AutocompleteMatch match(NULL, 1100, false,
-                          AutocompleteMatch::SEARCH_SUGGEST);
+                          AutocompleteMatchType::SEARCH_SUGGEST);
   GURL url = controller_->
       GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
   EXPECT_TRUE(url.path().empty());
diff --git a/chrome/browser/autocomplete/bookmark_provider.cc b/chrome/browser/autocomplete/bookmark_provider.cc
index a20371a..63b30b48 100644
--- a/chrome/browser/autocomplete/bookmark_provider.cc
+++ b/chrome/browser/autocomplete/bookmark_provider.cc
@@ -160,7 +160,8 @@
   // The AutocompleteMatch we construct is non-deletable because the only
   // way to support this would be to delete the underlying bookmark, which is
   // unlikely to be what the user intends.
-  AutocompleteMatch match(this, 0, false, AutocompleteMatch::BOOKMARK_TITLE);
+  AutocompleteMatch match(this, 0, false,
+                          AutocompleteMatchType::BOOKMARK_TITLE);
   const string16& title(title_match.node->GetTitle());
   DCHECK(!title.empty());
   const GURL& url(title_match.node->url());
diff --git a/chrome/browser/autocomplete/builtin_provider.cc b/chrome/browser/autocomplete/builtin_provider.cc
index db7c49e..09fa070 100644
--- a/chrome/browser/autocomplete/builtin_provider.cc
+++ b/chrome/browser/autocomplete/builtin_provider.cc
@@ -113,7 +113,7 @@
 void BuiltinProvider::AddMatch(const string16& match_string,
                                const ACMatchClassifications& styles) {
   AutocompleteMatch match(this, kRelevance, false,
-                          AutocompleteMatch::NAVSUGGEST);
+                          AutocompleteMatchType::NAVSUGGEST);
   match.fill_into_edit = match_string;
   match.destination_url = GURL(match_string);
   match.contents = match_string;
diff --git a/chrome/browser/autocomplete/contact_provider_chromeos.cc b/chrome/browser/autocomplete/contact_provider_chromeos.cc
index d715894..c291553a1 100644
--- a/chrome/browser/autocomplete/contact_provider_chromeos.cc
+++ b/chrome/browser/autocomplete/contact_provider_chromeos.cc
@@ -226,7 +226,7 @@
 AutocompleteMatch ContactProvider::CreateAutocompleteMatch(
     const AutocompleteInput& input,
     const ContactData& contact) {
-  AutocompleteMatch match(this, 0, false, AutocompleteMatch::CONTACT);
+  AutocompleteMatch match(this, 0, false, AutocompleteMatchType::CONTACT);
   match.inline_autocomplete_offset = string16::npos;
   match.contents = contact.full_name;
   match.fill_into_edit = match.contents;
diff --git a/chrome/browser/autocomplete/extension_app_provider.cc b/chrome/browser/autocomplete/extension_app_provider.cc
index 5d655f1e..788d096 100644
--- a/chrome/browser/autocomplete/extension_app_provider.cc
+++ b/chrome/browser/autocomplete/extension_app_provider.cc
@@ -73,7 +73,8 @@
     size_t url_match_index) {
   // TODO(finnur): Figure out what type to return here, might want to have
   // the extension icon/a generic icon show up in the Omnibox.
-  AutocompleteMatch match(this, 0, false, AutocompleteMatch::EXTENSION_APP);
+  AutocompleteMatch match(this, 0, false,
+                          AutocompleteMatchType::EXTENSION_APP);
   match.fill_into_edit =
       app.should_match_against_launch_url ? app.launch_url : input.text();
   match.destination_url = GURL(app.launch_url);
diff --git a/chrome/browser/autocomplete/history_contents_provider.cc b/chrome/browser/autocomplete/history_contents_provider.cc
index 8551c4a..d9ad816b 100644
--- a/chrome/browser/autocomplete/history_contents_provider.cc
+++ b/chrome/browser/autocomplete/history_contents_provider.cc
@@ -232,8 +232,8 @@
     const MatchReference& match_reference) {
   const history::URLResult& result = *match_reference.result;
   AutocompleteMatch match(this, match_reference.relevance, true,
-      MatchInTitle(result) ?
-          AutocompleteMatch::HISTORY_TITLE : AutocompleteMatch::HISTORY_BODY);
+      MatchInTitle(result) ? AutocompleteMatchType::HISTORY_TITLE :
+          AutocompleteMatchType::HISTORY_BODY);
   match.contents = StringForURLDisplay(result.url(), true, trim_http_);
   match.fill_into_edit =
       AutocompleteInput::FormattedStringWithEquivalentMeaning(result.url(),
diff --git a/chrome/browser/autocomplete/history_quick_provider.cc b/chrome/browser/autocomplete/history_quick_provider.cc
index cc6fa7a..e0f2ccb 100644
--- a/chrome/browser/autocomplete/history_quick_provider.cc
+++ b/chrome/browser/autocomplete/history_quick_provider.cc
@@ -32,6 +32,7 @@
 #include "chrome/browser/search_engines/template_url.h"
 #include "chrome/browser/search_engines/template_url_service.h"
 #include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/common/autocomplete_match_type.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
@@ -333,8 +334,8 @@
     int score) {
   const history::URLRow& info = history_match.url_info;
   AutocompleteMatch match(this, score, !!info.visit_count(),
-      history_match.url_matches.empty() ?
-          AutocompleteMatch::HISTORY_TITLE : AutocompleteMatch::HISTORY_URL);
+      history_match.url_matches.empty() ? AutocompleteMatchType::HISTORY_TITLE :
+          AutocompleteMatchType::HISTORY_URL);
   match.typed_count = info.typed_count();
   match.destination_url = info.url();
   DCHECK(match.destination_url.is_valid());
diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc
index 52eebe2..1bc460f 100644
--- a/chrome/browser/autocomplete/history_url_provider.cc
+++ b/chrome/browser/autocomplete/history_url_provider.cc
@@ -333,7 +333,7 @@
     const AutocompleteInput& input,
     bool trim_http) {
   AutocompleteMatch match(provider, 0, false,
-                          AutocompleteMatch::URL_WHAT_YOU_TYPED);
+                          AutocompleteMatchType::URL_WHAT_YOU_TYPED);
 
   const GURL& url = input.canonicalized_url();
   if (url.is_valid()) {
@@ -1039,7 +1039,7 @@
     int relevance) {
   const history::URLRow& info = history_match.url_info;
   AutocompleteMatch match(this, relevance,
-      !!info.visit_count(), AutocompleteMatch::HISTORY_URL);
+      !!info.visit_count(), AutocompleteMatchType::HISTORY_URL);
   match.typed_count = info.typed_count();
   match.destination_url = info.url();
   DCHECK(match.destination_url.is_valid());
diff --git a/chrome/browser/autocomplete/keyword_provider.cc b/chrome/browser/autocomplete/keyword_provider.cc
index b87e3b3..c7b1533 100644
--- a/chrome/browser/autocomplete/keyword_provider.cc
+++ b/chrome/browser/autocomplete/keyword_provider.cc
@@ -503,8 +503,8 @@
                            input.allow_exact_keyword_match());
   }
   AutocompleteMatch match(this, relevance, false,
-      supports_replacement ? AutocompleteMatch::SEARCH_OTHER_ENGINE :
-                             AutocompleteMatch::HISTORY_KEYWORD);
+      supports_replacement ? AutocompleteMatchType::SEARCH_OTHER_ENGINE :
+                             AutocompleteMatchType::HISTORY_KEYWORD);
   match.fill_into_edit.assign(keyword);
   if (!remaining_input.empty() || !keyword_complete || supports_replacement)
     match.fill_into_edit.push_back(L' ');
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc
index bfb0896..f1d7ea1 100644
--- a/chrome/browser/autocomplete/search_provider.cc
+++ b/chrome/browser/autocomplete/search_provider.cc
@@ -256,8 +256,8 @@
   // destination_url for comparison as it varies depending upon the index passed
   // to TemplateURL::ReplaceSearchTerms.
   for (ACMatches::iterator i = matches_.begin(); i != matches_.end();) {
-    if (((i->type == AutocompleteMatch::SEARCH_HISTORY) ||
-         (i->type == AutocompleteMatch::SEARCH_SUGGEST)) &&
+    if (((i->type == AutocompleteMatchType::SEARCH_HISTORY) ||
+         (i->type == AutocompleteMatchType::SEARCH_SUGGEST)) &&
         (i->fill_into_edit == text)) {
       i = matches_.erase(i);
       results_updated = true;
@@ -277,7 +277,7 @@
         TemplateURLRef::NO_SUGGESTION_CHOSEN;
     MatchMap match_map;
     AddMatchToMap(text, adjusted_input_text, verbatim_relevance + 1,
-                  AutocompleteMatch::SEARCH_SUGGEST,
+                  AutocompleteMatchType::SEARCH_SUGGEST,
                   did_not_accept_default_suggestion, false, &match_map);
     if (!match_map.empty()) {
       matches_.push_back(match_map.begin()->second);
@@ -1047,7 +1047,7 @@
       TemplateURLRef::NO_SUGGESTION_CHOSEN;
   if (verbatim_relevance > 0) {
     AddMatchToMap(input_.text(), input_.text(), verbatim_relevance,
-                  AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                  AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                   did_not_accept_default_suggestion, false, &map);
   }
   if (!keyword_input_.text().empty()) {
@@ -1063,7 +1063,7 @@
       if (keyword_verbatim_relevance > 0) {
         AddMatchToMap(keyword_input_.text(), keyword_input_.text(),
                       keyword_verbatim_relevance,
-                      AutocompleteMatch::SEARCH_OTHER_ENGINE,
+                      AutocompleteMatchType::SEARCH_OTHER_ENGINE,
                       did_not_accept_keyword_suggestion, true, &map);
       }
     }
@@ -1074,7 +1074,7 @@
       !input_.prevent_inline_autocomplete())
     AddMatchToMap(input_.text() + default_provider_suggestion_.text,
                   input_.text(), verbatim_relevance + 1,
-                  AutocompleteMatch::SEARCH_SUGGEST,
+                  AutocompleteMatchType::SEARCH_SUGGEST,
                   did_not_accept_default_suggestion, false, &map);
 
   AddHistoryResultsToMap(keyword_history_results_, true,
@@ -1117,7 +1117,7 @@
 
 bool SearchProvider::IsTopMatchNavigationInKeywordMode() const {
   return (!providers_.keyword_provider().empty() &&
-          (matches_.front().type == AutocompleteMatch::NAVSUGGEST));
+          (matches_.front().type == AutocompleteMatchType::NAVSUGGEST));
 }
 
 bool SearchProvider::IsTopMatchScoreTooLow() const {
@@ -1137,20 +1137,22 @@
 bool SearchProvider::IsTopMatchHighRankSearchForURL() const {
   return input_.type() == AutocompleteInput::URL &&
          matches_.front().relevance > CalculateRelevanceForVerbatim() &&
-         (matches_.front().type == AutocompleteMatch::SEARCH_SUGGEST ||
-          matches_.front().type == AutocompleteMatch::SEARCH_WHAT_YOU_TYPED ||
-          matches_.front().type == AutocompleteMatch::SEARCH_OTHER_ENGINE);
+         (matches_.front().type == AutocompleteMatchType::SEARCH_SUGGEST ||
+          matches_.front().type ==
+              AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED ||
+          matches_.front().type == AutocompleteMatchType::SEARCH_OTHER_ENGINE);
 }
 
 bool SearchProvider::IsTopMatchNotInlinable() const {
   // Note: this test assumes the SEARCH_OTHER_ENGINE match corresponds to
   // the verbatim search query on the keyword engine.  SearchProvider should
   // not create any other match of type SEARCH_OTHER_ENGINE.
-  return matches_.front().type != AutocompleteMatch::SEARCH_WHAT_YOU_TYPED &&
-         matches_.front().type != AutocompleteMatch::URL_WHAT_YOU_TYPED &&
-         matches_.front().type != AutocompleteMatch::SEARCH_OTHER_ENGINE &&
-         matches_.front().inline_autocomplete_offset == string16::npos &&
-         matches_.front().fill_into_edit != input_.text();
+  return
+      matches_.front().type != AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED &&
+      matches_.front().type != AutocompleteMatchType::URL_WHAT_YOU_TYPED &&
+      matches_.front().type != AutocompleteMatchType::SEARCH_OTHER_ENGINE &&
+      matches_.front().inline_autocomplete_offset == string16::npos &&
+      matches_.front().fill_into_edit != input_.text();
 }
 
 void SearchProvider::UpdateMatches() {
@@ -1273,7 +1275,8 @@
   for (SuggestResults::const_iterator i(scored_results.begin());
        i != scored_results.end(); ++i) {
     AddMatchToMap(i->suggestion(), input_text, i->relevance(),
-                  AutocompleteMatch::SEARCH_HISTORY, did_not_accept_suggestion,
+                  AutocompleteMatchType::SEARCH_HISTORY,
+                  did_not_accept_suggestion,
                   is_keyword, map);
   }
 }
@@ -1343,7 +1346,7 @@
     const bool is_keyword = results[i].from_keyword_provider();
     const string16& input = is_keyword ? keyword_input_.text() : input_.text();
     AddMatchToMap(results[i].suggestion(), input, results[i].relevance(),
-                  AutocompleteMatch::SEARCH_SUGGEST, i, is_keyword, map);
+                  AutocompleteMatchType::SEARCH_SUGGEST, i, is_keyword, map);
   }
 }
 
@@ -1474,8 +1477,8 @@
   // -- they should always use grey text if they are to autocomplete at all. So
   // we clamp non-verbatim results to just below the verbatim score to ensure
   // that none of them are inline autocompleted.
-  if (type != AutocompleteMatch::SEARCH_WHAT_YOU_TYPED &&
-      type != AutocompleteMatch::SEARCH_OTHER_ENGINE &&
+  if (type != AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED &&
+      type != AutocompleteMatchType::SEARCH_OTHER_ENGINE &&
       chrome::IsInstantExtendedAPIEnabled()) {
     relevance = std::min(kNonURLVerbatimRelevance - 1, relevance);
   }
@@ -1511,7 +1514,7 @@
   const string16& input = navigation.from_keyword_provider() ?
       keyword_input_.text() : input_.text();
   AutocompleteMatch match(this, navigation.relevance(), false,
-                          AutocompleteMatch::NAVSUGGEST);
+                          AutocompleteMatchType::NAVSUGGEST);
   match.destination_url = navigation.url();
 
   // First look for the user's input inside the fill_into_edit as it would be
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
index 1ffd0d5..188ce0a 100644
--- a/chrome/browser/autocomplete/search_provider_unittest.cc
+++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -70,7 +70,7 @@
   virtual void TearDown();
 
   struct ResultInfo {
-    ResultInfo() : result_type(AutocompleteMatch::NUM_TYPES) {
+    ResultInfo() : result_type(AutocompleteMatchType::NUM_TYPES) {
     }
     ResultInfo(GURL gurl,
                AutocompleteMatch::Type result_type,
@@ -430,7 +430,7 @@
   QueryForInput(term, true, false);
 
   ASSERT_FALSE(provider_->matches().empty());
-  ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+  ASSERT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
             provider_->matches()[0].type);
 }
 
@@ -873,9 +873,11 @@
   // keyword provider's what-you-typed, and one for the default provider's
   // what you typed, in that order.
   ASSERT_EQ(3u, result.size());
-  EXPECT_EQ(AutocompleteMatch::SEARCH_HISTORY, result.match_at(0).type);
-  EXPECT_EQ(AutocompleteMatch::SEARCH_OTHER_ENGINE, result.match_at(1).type);
-  EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, result.match_at(2).type);
+  EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, result.match_at(0).type);
+  EXPECT_EQ(AutocompleteMatchType::SEARCH_OTHER_ENGINE,
+            result.match_at(1).type);
+  EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+            result.match_at(2).type);
   EXPECT_GT(result.match_at(0).relevance, result.match_at(1).relevance);
   EXPECT_GT(result.match_at(1).relevance, result.match_at(2).relevance);
 
@@ -901,20 +903,20 @@
     // Test a simple keyword input.
     { ASCIIToUTF16("k foo"), 2,
       { ResultInfo(GURL("http://keyword/foo"),
-                   AutocompleteMatch::SEARCH_OTHER_ENGINE,
+                   AutocompleteMatchType::SEARCH_OTHER_ENGINE,
                    ASCIIToUTF16("k foo")),
         ResultInfo(GURL("http://defaultturl/k%20foo"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("k foo") ) } },
 
     // Make sure extra whitespace after the keyword doesn't change the
     // keyword verbatim query.
     { ASCIIToUTF16("k   foo"), 2,
       { ResultInfo(GURL("http://keyword/foo"),
-                   AutocompleteMatch::SEARCH_OTHER_ENGINE,
+                   AutocompleteMatchType::SEARCH_OTHER_ENGINE,
                    ASCIIToUTF16("k foo")),
         ResultInfo(GURL("http://defaultturl/k%20%20%20foo"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("k   foo")) } },
     // Leading whitespace should be stripped before SearchProvider gets the
     // input; hence there are no tests here about how it handles those inputs.
@@ -923,10 +925,10 @@
     // matches.
     { ASCIIToUTF16("k  foo  bar"), 2,
       { ResultInfo(GURL("http://keyword/foo%20%20bar"),
-                   AutocompleteMatch::SEARCH_OTHER_ENGINE,
+                   AutocompleteMatchType::SEARCH_OTHER_ENGINE,
                    ASCIIToUTF16("k foo  bar")),
         ResultInfo(GURL("http://defaultturl/k%20%20foo%20%20bar"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("k  foo  bar")) } },
     // Note in the above test case we don't test trailing whitespace because
     // SearchProvider still doesn't handle this well.  See related bugs:
@@ -936,35 +938,35 @@
     // when constructing the keyword match.
     { ASCIIToUTF16("www.k foo"), 2,
       { ResultInfo(GURL("http://keyword/foo"),
-                   AutocompleteMatch::SEARCH_OTHER_ENGINE,
+                   AutocompleteMatchType::SEARCH_OTHER_ENGINE,
                    ASCIIToUTF16("k foo")),
         ResultInfo(GURL("http://defaultturl/www.k%20foo"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("www.k foo")) } },
     { ASCIIToUTF16("http://k foo"), 2,
       { ResultInfo(GURL("http://keyword/foo"),
-                   AutocompleteMatch::SEARCH_OTHER_ENGINE,
+                   AutocompleteMatchType::SEARCH_OTHER_ENGINE,
                    ASCIIToUTF16("k foo")),
         ResultInfo(GURL("http://defaultturl/http%3A//k%20foo"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("http://k foo")) } },
     { ASCIIToUTF16("http://www.k foo"), 2,
       { ResultInfo(GURL("http://keyword/foo"),
-                   AutocompleteMatch::SEARCH_OTHER_ENGINE,
+                   AutocompleteMatchType::SEARCH_OTHER_ENGINE,
                    ASCIIToUTF16("k foo")),
         ResultInfo(GURL("http://defaultturl/http%3A//www.k%20foo"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("http://www.k foo")) } },
 
     // A keyword with no remaining input shouldn't get a keyword
     // verbatim match.
     { ASCIIToUTF16("k"), 1,
       { ResultInfo(GURL("http://defaultturl/k"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("k")) } },
     { ASCIIToUTF16("k "), 1,
       { ResultInfo(GURL("http://defaultturl/k%20"),
-                   AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+                   AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
                    ASCIIToUTF16("k ")) } }
 
     // The fact that verbatim queries to keyword are handled by KeywordProvider
@@ -1667,61 +1669,63 @@
                 "{\"google:suggesttype\":[\"NAVIGATION\"],"
                  "\"google:suggestrelevance\":[9999]}]",
       { "a.com/a", "a.com", kNotApplicable, kNotApplicable },
-      { AutocompleteMatch::NAVSUGGEST, AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
-        AutocompleteMatch::NUM_TYPES, AutocompleteMatch::NUM_TYPES } },
+      { AutocompleteMatchType::NAVSUGGEST,
+        AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+        AutocompleteMatchType::NUM_TYPES,
+        AutocompleteMatchType::NUM_TYPES } },
 
     // Ensure topmost SUGGEST matches are not allowed for URL input.
     // SearchProvider disregards search and verbatim suggested relevances.
     { "a.com", "[\"a.com\",[\"a.com info\"],[],[],"
                 "{\"google:suggestrelevance\":[9999]}]",
       { "a.com", "a.com info", kNotApplicable, kNotApplicable },
-      { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
-        AutocompleteMatch::SEARCH_SUGGEST,
-        AutocompleteMatch::NUM_TYPES, AutocompleteMatch::NUM_TYPES } },
+      { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+        AutocompleteMatchType::SEARCH_SUGGEST,
+        AutocompleteMatchType::NUM_TYPES, AutocompleteMatchType::NUM_TYPES } },
     { "a.com", "[\"a.com\",[\"a.com/a\"],[],[],"
                 "{\"google:suggestrelevance\":[9999]}]",
       { "a.com", "a.com/a", kNotApplicable, kNotApplicable },
-      { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
-        AutocompleteMatch::SEARCH_SUGGEST,
-        AutocompleteMatch::NUM_TYPES, AutocompleteMatch::NUM_TYPES } },
+      { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+        AutocompleteMatchType::SEARCH_SUGGEST,
+        AutocompleteMatchType::NUM_TYPES, AutocompleteMatchType::NUM_TYPES } },
 
     // Ensure the fallback mechanism allows inlinable NAVIGATION matches.
     { "a.com", "[\"a.com\",[\"a.com/a\", \"http://a.com/b\"],[],[],"
                 "{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
                  "\"google:suggestrelevance\":[9999, 9998]}]",
       { "a.com/b", "a.com", "a.com/a", kNotApplicable },
-      { AutocompleteMatch::NAVSUGGEST,
-        AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
-        AutocompleteMatch::SEARCH_SUGGEST,
-        AutocompleteMatch::NUM_TYPES } },
+      { AutocompleteMatchType::NAVSUGGEST,
+        AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+        AutocompleteMatchType::SEARCH_SUGGEST,
+        AutocompleteMatchType::NUM_TYPES } },
     { "a.com", "[\"a.com\",[\"a.com/a\", \"http://a.com/b\"],[],[],"
                 "{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
                  "\"google:suggestrelevance\":[9998, 9997],"
                  "\"google:verbatimrelevance\":9999}]",
       { "a.com/b", "a.com", "a.com/a", kNotApplicable },
-      { AutocompleteMatch::NAVSUGGEST,
-        AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
-        AutocompleteMatch::SEARCH_SUGGEST,
-        AutocompleteMatch::NUM_TYPES } },
+      { AutocompleteMatchType::NAVSUGGEST,
+        AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+        AutocompleteMatchType::SEARCH_SUGGEST,
+        AutocompleteMatchType::NUM_TYPES } },
 
     // Ensure the fallback mechanism disallows non-inlinable NAVIGATION matches.
     { "a.com", "[\"a.com\",[\"a.com/a\", \"http://abc.com\"],[],[],"
                 "{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
       "\"google:suggestrelevance\":[9999, 9998]}]",
       { "a.com", "abc.com", "a.com/a", kNotApplicable },
-      { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
-        AutocompleteMatch::NAVSUGGEST,
-        AutocompleteMatch::SEARCH_SUGGEST,
-        AutocompleteMatch::NUM_TYPES } },
+      { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+        AutocompleteMatchType::NAVSUGGEST,
+        AutocompleteMatchType::SEARCH_SUGGEST,
+        AutocompleteMatchType::NUM_TYPES } },
     { "a.com", "[\"a.com\",[\"a.com/a\", \"http://abc.com\"],[],[],"
                 "{\"google:suggesttype\":[\"QUERY\", \"NAVIGATION\"],"
                  "\"google:suggestrelevance\":[9998, 9997],"
                  "\"google:verbatimrelevance\":9999}]",
       { "a.com", "abc.com", "a.com/a", kNotApplicable },
-      { AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
-        AutocompleteMatch::NAVSUGGEST,
-        AutocompleteMatch::SEARCH_SUGGEST,
-        AutocompleteMatch::NUM_TYPES } },
+      { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
+        AutocompleteMatchType::NAVSUGGEST,
+        AutocompleteMatchType::SEARCH_SUGGEST,
+        AutocompleteMatchType::NUM_TYPES } },
   };
 
   for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) {
@@ -1744,7 +1748,7 @@
     // Ensure that no expected matches are missing.
     for (; j < ARRAYSIZE_UNSAFE(cases[i].match_contents); ++j) {
       EXPECT_EQ(kNotApplicable, cases[i].match_contents[j]);
-      EXPECT_EQ(AutocompleteMatch::NUM_TYPES, cases[i].match_types[j]);
+      EXPECT_EQ(AutocompleteMatchType::NUM_TYPES, cases[i].match_types[j]);
     }
   }
 }
diff --git a/chrome/browser/autocomplete/shortcuts_provider.cc b/chrome/browser/autocomplete/shortcuts_provider.cc
index 7bca9802..0b994e42 100644
--- a/chrome/browser/autocomplete/shortcuts_provider.cc
+++ b/chrome/browser/autocomplete/shortcuts_provider.cc
@@ -177,7 +177,7 @@
     const history::ShortcutsBackend::Shortcut& shortcut) {
   DCHECK(!term_string.empty());
   AutocompleteMatch match(this, relevance, true,
-                          AutocompleteMatch::HISTORY_TITLE);
+                          AutocompleteMatchType::HISTORY_TITLE);
   match.destination_url = shortcut.url;
   DCHECK(match.destination_url.is_valid());
   match.fill_into_edit = UTF8ToUTF16(shortcut.url.spec());
diff --git a/chrome/browser/autocomplete/shortcuts_provider_unittest.cc b/chrome/browser/autocomplete/shortcuts_provider_unittest.cc
index 9bc6bc7..bc7d6f3 100644
--- a/chrome/browser/autocomplete/shortcuts_provider_unittest.cc
+++ b/chrome/browser/autocomplete/shortcuts_provider_unittest.cc
@@ -646,7 +646,7 @@
                backend_->shortcuts_map().find(ASCIIToUTF16("erase")));
 
   AutocompleteMatch match(provider_, 1200, true,
-                          AutocompleteMatch::HISTORY_TITLE);
+                          AutocompleteMatchType::HISTORY_TITLE);
 
   match.destination_url = GURL(shortcuts_to_test_delete[0].url);
   match.contents = ASCIIToUTF16(shortcuts_to_test_delete[0].contents);
diff --git a/chrome/browser/autocomplete/zero_suggest_provider.cc b/chrome/browser/autocomplete/zero_suggest_provider.cc
index e5ae8b4..5de8e505 100644
--- a/chrome/browser/autocomplete/zero_suggest_provider.cc
+++ b/chrome/browser/autocomplete/zero_suggest_provider.cc
@@ -176,7 +176,7 @@
     // that it is in the first suggestion slot and inline autocompleted. It
     // gets dropped as soon as the user types something.
     AutocompleteMatch match(this, kMaxZeroSuggestRelevance, false,
-                            AutocompleteMatch::NAVSUGGEST);
+                            AutocompleteMatchType::NAVSUGGEST);
     match.destination_url = GURL(current_query_);
     match.contents = current_query_text;
     if (!user_text_is_url) {
@@ -209,7 +209,7 @@
   // TODO(jered): Use real scores from the suggestion server.
   const int suggestion_relevance = kMaxZeroSuggestRelevance - matches_.size();
   AutocompleteMatch match(this, suggestion_relevance, false,
-      AutocompleteMatch::SEARCH_SUGGEST);
+                          AutocompleteMatchType::SEARCH_SUGGEST);
   match.contents = result;
   match.fill_into_edit = result;
   if (!user_text_is_url && user_text_ != result)
diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc
index d517b48..ce0fc2c8 100644
--- a/chrome/browser/automation/testing_automation_provider.cc
+++ b/chrome/browser/automation/testing_automation_provider.cc
@@ -3009,7 +3009,7 @@
        ++i) {
     const AutocompleteMatch& match = *i;
     DictionaryValue* item = new DictionaryValue;  // owned by return_value
-    item->SetString("type", AutocompleteMatch::TypeToString(match.type));
+    item->SetString("type", AutocompleteMatchType::ToString(match.type));
     item->SetBoolean("starred", match.starred);
     item->SetString("destination_url", match.destination_url.spec());
     item->SetString("contents", match.contents);
diff --git a/chrome/browser/extensions/api/omnibox/omnibox_api_browsertest.cc b/chrome/browser/extensions/api/omnibox/omnibox_api_browsertest.cc
index a968696..7db7a969 100644
--- a/chrome/browser/extensions/api/omnibox/omnibox_api_browsertest.cc
+++ b/chrome/browser/extensions/api/omnibox/omnibox_api_browsertest.cc
@@ -44,7 +44,7 @@
     const AutocompleteResult& result = autocomplete_controller->result();
     ASSERT_EQ(2U, result.size()) << AutocompleteResultAsString(result);
     AutocompleteMatch match = result.match_at(0);
-    EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type);
+    EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, match.type);
     EXPECT_FALSE(match.deletable);
 
     match = result.match_at(1);
@@ -70,7 +70,8 @@
     EXPECT_EQ(ASCIIToUTF16("keyword"), result.match_at(0).keyword);
     EXPECT_EQ(ASCIIToUTF16("keyword suggestio"),
               result.match_at(0).fill_into_edit);
-    EXPECT_EQ(AutocompleteMatch::SEARCH_OTHER_ENGINE, result.match_at(0).type);
+    EXPECT_EQ(AutocompleteMatchType::SEARCH_OTHER_ENGINE,
+              result.match_at(0).type);
     EXPECT_EQ(AutocompleteProvider::TYPE_KEYWORD,
               result.match_at(0).provider->type());
     EXPECT_EQ(ASCIIToUTF16("keyword"), result.match_at(1).keyword);
@@ -125,7 +126,7 @@
               result.match_at(1).contents_class[5].style);
 
     AutocompleteMatch match = result.match_at(4);
-    EXPECT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, match.type);
+    EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, match.type);
     EXPECT_EQ(AutocompleteProvider::TYPE_SEARCH,
               result.match_at(4).provider->type());
     EXPECT_FALSE(match.deletable);
diff --git a/chrome/browser/metrics/metrics_log.cc b/chrome/browser/metrics/metrics_log.cc
index 998d180..fb73abf6 100644
--- a/chrome/browser/metrics/metrics_log.cc
+++ b/chrome/browser/metrics/metrics_log.cc
@@ -110,31 +110,31 @@
 OmniboxEventProto::Suggestion::ResultType AsOmniboxEventResultType(
     AutocompleteMatch::Type type) {
   switch (type) {
-    case AutocompleteMatch::URL_WHAT_YOU_TYPED:
+    case AutocompleteMatchType::URL_WHAT_YOU_TYPED:
       return OmniboxEventProto::Suggestion::URL_WHAT_YOU_TYPED;
-    case AutocompleteMatch::HISTORY_URL:
+    case AutocompleteMatchType::HISTORY_URL:
       return OmniboxEventProto::Suggestion::HISTORY_URL;
-    case AutocompleteMatch::HISTORY_TITLE:
+    case AutocompleteMatchType::HISTORY_TITLE:
       return OmniboxEventProto::Suggestion::HISTORY_TITLE;
-    case AutocompleteMatch::HISTORY_BODY:
+    case AutocompleteMatchType::HISTORY_BODY:
       return OmniboxEventProto::Suggestion::HISTORY_BODY;
-    case AutocompleteMatch::HISTORY_KEYWORD:
+    case AutocompleteMatchType::HISTORY_KEYWORD:
       return OmniboxEventProto::Suggestion::HISTORY_KEYWORD;
-    case AutocompleteMatch::NAVSUGGEST:
+    case AutocompleteMatchType::NAVSUGGEST:
       return OmniboxEventProto::Suggestion::NAVSUGGEST;
-    case AutocompleteMatch::SEARCH_WHAT_YOU_TYPED:
+    case AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED:
       return OmniboxEventProto::Suggestion::SEARCH_WHAT_YOU_TYPED;
-    case AutocompleteMatch::SEARCH_HISTORY:
+    case AutocompleteMatchType::SEARCH_HISTORY:
       return OmniboxEventProto::Suggestion::SEARCH_HISTORY;
-    case AutocompleteMatch::SEARCH_SUGGEST:
+    case AutocompleteMatchType::SEARCH_SUGGEST:
       return OmniboxEventProto::Suggestion::SEARCH_SUGGEST;
-    case AutocompleteMatch::SEARCH_OTHER_ENGINE:
+    case AutocompleteMatchType::SEARCH_OTHER_ENGINE:
       return OmniboxEventProto::Suggestion::SEARCH_OTHER_ENGINE;
-    case AutocompleteMatch::EXTENSION_APP:
+    case AutocompleteMatchType::EXTENSION_APP:
       return OmniboxEventProto::Suggestion::EXTENSION_APP;
-    case AutocompleteMatch::CONTACT:
+    case AutocompleteMatchType::CONTACT:
       return OmniboxEventProto::Suggestion::CONTACT;
-    case AutocompleteMatch::BOOKMARK_TITLE:
+    case AutocompleteMatchType::BOOKMARK_TITLE:
       return OmniboxEventProto::Suggestion::BOOKMARK_TITLE;
     default:
       NOTREACHED();
@@ -1060,7 +1060,7 @@
       OPEN_ELEMENT_FOR_SCOPE("autocompleteitem");
       if (i->provider)
         WriteAttribute("provider", i->provider->GetName());
-      const std::string result_type(AutocompleteMatch::TypeToString(i->type));
+      const std::string result_type(AutocompleteMatchType::ToString(i->type));
       if (!result_type.empty())
         WriteAttribute("resulttype", result_type);
       WriteIntAttribute("relevance", i->relevance);
diff --git a/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc b/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc
index ae4ff2a..675df556 100644
--- a/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc
+++ b/chrome/browser/predictors/autocomplete_action_predictor_unittest.cc
@@ -352,7 +352,7 @@
   ASSERT_NO_FATAL_FAILURE(AddAllRows());
 
   AutocompleteMatch match;
-  match.type = AutocompleteMatch::HISTORY_URL;
+  match.type = AutocompleteMatchType::HISTORY_URL;
 
   for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_url_db); ++i) {
     match.destination_url = GURL(test_url_db[i].url);
@@ -366,7 +366,7 @@
   ASSERT_NO_FATAL_FAILURE(AddAllRows());
 
   AutocompleteMatch match;
-  match.type = AutocompleteMatch::SEARCH_WHAT_YOU_TYPED;
+  match.type = AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED;
 
   for (size_t i = 0; i < arraysize(test_url_db); ++i) {
     match.destination_url = GURL(test_url_db[i].url);
diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm
index c5db89e0..55b46643 100644
--- a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm
+++ b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm
@@ -87,7 +87,8 @@
   // needs.  Fake one for us to use.
   static AutocompleteMatch MakeMatch(const string16 &contents,
                                      const string16 &description) {
-    AutocompleteMatch m(NULL, 1, true, AutocompleteMatch::URL_WHAT_YOU_TYPED);
+    AutocompleteMatch m(NULL, 1, true,
+                        AutocompleteMatchType::URL_WHAT_YOU_TYPED);
     m.contents = contents;
     m.description = description;
     return m;
diff --git a/chrome/browser/ui/omnibox/omnibox_edit_model.cc b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
index be51342..cd47f1c3 100644
--- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc
+++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
@@ -751,7 +751,7 @@
     view_->RevertAll();  // Revert the box to its unedited state
   }
 
-  if (match.type == AutocompleteMatch::EXTENSION_APP) {
+  if (match.type == AutocompleteMatchType::EXTENSION_APP) {
     ExtensionAppProvider::LaunchAppFromOmnibox(match, profile_, disposition);
   } else {
     base::TimeDelta query_formulation_time =
@@ -1279,7 +1279,7 @@
     // just getting a "search what you typed" URL from
     // SearchProvider::CreateSearchSuggestion(), since the user may be in a
     // non-default search mode such as image search.
-    match->type = AutocompleteMatch::SEARCH_WHAT_YOU_TYPED;
+    match->type = AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED;
     match->destination_url =
         delegate_->GetNavigationController().GetVisibleEntry()->GetURL();
     match->transition = content::PAGE_TRANSITION_RELOAD;
@@ -1311,7 +1311,7 @@
         if (default_provider && default_provider->SupportsReplacement()) {
           *match = SearchProvider::CreateSearchSuggestion(profile_,
               autocomplete_controller()->search_provider(), input, text, text,
-              0, AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+              0, AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
               TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, false,
               default_provider->keyword());
         } else {
@@ -1465,7 +1465,7 @@
   if (!match.destination_url.SchemeIs(extensions::kExtensionScheme)) {
     // Warm up DNS Prefetch cache, or preconnect to a search service.
     UMA_HISTOGRAM_ENUMERATION("Autocomplete.MatchType", match.type,
-                              AutocompleteMatch::NUM_TYPES);
+                              AutocompleteMatchType::NUM_TYPES);
     if (profile_->GetNetworkPredictor()) {
       profile_->GetNetworkPredictor()->AnticipateOmniboxUrl(
           match.destination_url,
diff --git a/chrome/browser/ui/omnibox/omnibox_view.cc b/chrome/browser/ui/omnibox/omnibox_view.cc
index 7ff3fbc..2f475c4 100644
--- a/chrome/browser/ui/omnibox/omnibox_view.cc
+++ b/chrome/browser/ui/omnibox/omnibox_view.cc
@@ -95,7 +95,8 @@
 int OmniboxView::GetIcon() const {
   if (IsEditingOrEmpty()) {
     return AutocompleteMatch::TypeToLocationBarIcon(model_.get() ?
-          model_->CurrentTextType() : AutocompleteMatch::URL_WHAT_YOU_TYPED);
+          model_->CurrentTextType() :
+              AutocompleteMatchType::URL_WHAT_YOU_TYPED);
   } else {
     return toolbar_model_->GetIcon();
   }
diff --git a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
index 5f46680..83cb9d0 100644
--- a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
+++ b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
@@ -610,7 +610,7 @@
     ASSERT_TRUE(popup_model->IsOpen());
 
     // Check if the default match result is Search Primary Provider.
-    ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+    ASSERT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
               popup_model->result().default_match()->type);
 
     // Open the default match.
@@ -631,7 +631,7 @@
     EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(omnibox_view->GetText()));
 
     // Check if the default match result is Search Primary Provider.
-    ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+    ASSERT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
               popup_model->result().default_match()->type);
 
     // Open the default match.
@@ -961,7 +961,7 @@
     ASSERT_TRUE(popup_model->IsOpen());
 
     // Check if the default match result is Search Primary Provider.
-    ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
+    ASSERT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
               popup_model->result().default_match()->type);
     ASSERT_EQ(kSearchTextURL,
               popup_model->result().default_match()->destination_url.spec());
@@ -980,7 +980,7 @@
     ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys));
     ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
     ASSERT_TRUE(popup_model->IsOpen());
-    ASSERT_EQ(AutocompleteMatch::HISTORY_KEYWORD,
+    ASSERT_EQ(AutocompleteMatchType::HISTORY_KEYWORD,
               popup_model->result().default_match()->type);
     ASSERT_EQ("http://abc.com/",
               popup_model->result().default_match()->destination_url.spec());
diff --git a/chrome/browser/ui/search/instant_controller.cc b/chrome/browser/ui/search/instant_controller.cc
index 54f27f6..106f474 100644
--- a/chrome/browser/ui/search/instant_controller.cc
+++ b/chrome/browser/ui/search/instant_controller.cc
@@ -301,7 +301,7 @@
       "Update: %s user_text='%s' full_text='%s' selection_start=%d "
       "selection_end=%d verbatim=%d typing=%d popup=%d escape_pressed=%d "
       "is_keyword_search=%d",
-      AutocompleteMatch::TypeToString(match.type).c_str(),
+      AutocompleteMatchType::ToString(match.type).c_str(),
       UTF16ToUTF8(user_text).c_str(), UTF16ToUTF8(full_text).c_str(),
       static_cast<int>(selection_start), static_cast<int>(selection_end),
       verbatim, user_input_in_progress, omnibox_popup_is_open, escape_pressed,
@@ -359,7 +359,7 @@
   // In non extended mode, Instant is disabled for URLs and keyword mode.
   if (!extended_enabled_ &&
       (!last_match_was_search_ ||
-       match.type == AutocompleteMatch::SEARCH_OTHER_ENGINE)) {
+       match.type == AutocompleteMatchType::SEARCH_OTHER_ENGINE)) {
     HideOverlay();
     return false;
   }
@@ -1820,7 +1820,7 @@
     InstantAutocompleteResult* result) {
   DCHECK(result);
   result->provider = UTF8ToUTF16(match.provider->GetName());
-  result->type = UTF8ToUTF16(AutocompleteMatch::TypeToString(match.type));
+  result->type = UTF8ToUTF16(AutocompleteMatchType::ToString(match.type));
   result->description = match.description;
   result->destination_url = UTF8ToUTF16(match.destination_url.spec());
 
diff --git a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
index 91bc3342..4dbab4a2 100644
--- a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
+++ b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
@@ -1714,8 +1714,8 @@
     InstantAutocompleteResult res;
     res.provider = ASCIIToUTF16(AutocompleteProvider::TypeToString(
         AutocompleteProvider::TYPE_BUILTIN));
-    res.type = ASCIIToUTF16(AutocompleteMatch::TypeToString(
-        AutocompleteMatch::SEARCH_WHAT_YOU_TYPED)),
+    res.type = ASCIIToUTF16(AutocompleteMatchType::ToString(
+        AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED)),
     res.description = ASCIIToUTF16(description);
     res.destination_url = ASCIIToUTF16(url);
     res.transition = content::PAGE_TRANSITION_TYPED;
@@ -1806,7 +1806,7 @@
   const AutocompleteResult& result = omnibox()->model()->result();
   for (AutocompleteResult::const_iterator iter = result.begin();
        !found_bookmark_match && iter != result.end(); ++iter) {
-    found_bookmark_match = iter->type == AutocompleteMatch::BOOKMARK_TITLE;
+    found_bookmark_match = iter->type == AutocompleteMatchType::BOOKMARK_TITLE;
   }
 
   EXPECT_TRUE(found_bookmark_match);
diff --git a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
index 725d52d8..c044521d 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
@@ -125,8 +125,8 @@
   if (default_icon_size_ == 0) {
     default_icon_size_ =
         location_bar_->GetThemeProvider()->GetImageSkiaNamed(
-        AutocompleteMatch::TypeToIcon(AutocompleteMatch::URL_WHAT_YOU_TYPED))->
-        width();
+            AutocompleteMatch::TypeToIcon(
+                AutocompleteMatchType::URL_WHAT_YOU_TYPED))->width();
   }
   keyword_icon_->set_owned_by_client();
   keyword_icon_->EnableCanvasFlippingForRTLUI(true);
diff --git a/chrome/browser/ui/webui/omnibox/omnibox_ui_handler.cc b/chrome/browser/ui/webui/omnibox/omnibox_ui_handler.cc
index 20f44ce..982adb6 100644
--- a/chrome/browser/ui/webui/omnibox/omnibox_ui_handler.cc
+++ b/chrome/browser/ui/webui/omnibox/omnibox_ui_handler.cc
@@ -139,7 +139,7 @@
     output->SetBoolean(item_prefix + ".is_history_what_you_typed_match",
                        it->is_history_what_you_typed_match);
     output->SetString(item_prefix + ".type",
-                      AutocompleteMatch::TypeToString(it->type));
+                      AutocompleteMatchType::ToString(it->type));
     if (it->associated_keyword.get() != NULL) {
       output->SetString(item_prefix + ".associated_keyword",
                         it->associated_keyword->keyword);
diff --git a/chrome/browser/ui/webui/options/options_ui.cc b/chrome/browser/ui/webui/options/options_ui.cc
index 7c0d5cd..cdf646e 100644
--- a/chrome/browser/ui/webui/options/options_ui.cc
+++ b/chrome/browser/ui/webui/options/options_ui.cc
@@ -350,12 +350,12 @@
     base::ListValue* const suggestions) {
   for (size_t i = 0; i < result.size(); ++i) {
     const AutocompleteMatch& match = result.match_at(i);
-    AutocompleteMatch::Type type = match.type;
-    if (type != AutocompleteMatch::HISTORY_URL &&
-        type != AutocompleteMatch::HISTORY_TITLE &&
-        type != AutocompleteMatch::HISTORY_BODY &&
-        type != AutocompleteMatch::HISTORY_KEYWORD &&
-        type != AutocompleteMatch::NAVSUGGEST)
+    AutocompleteMatchType::Type type = match.type;
+    if (type != AutocompleteMatchType::HISTORY_URL &&
+        type != AutocompleteMatchType::HISTORY_TITLE &&
+        type != AutocompleteMatchType::HISTORY_BODY &&
+        type != AutocompleteMatchType::HISTORY_KEYWORD &&
+        type != AutocompleteMatchType::NAVSUGGEST)
       continue;
     base::DictionaryValue* entry = new base::DictionaryValue();
     entry->SetString("title", match.description);
diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi
index 40e5fc8..4aea8fb41 100644
--- a/chrome/chrome_common.gypi
+++ b/chrome/chrome_common.gypi
@@ -100,6 +100,8 @@
         'common/attrition_experiments.h',
         'common/auto_start_linux.cc',
         'common/auto_start_linux.h',
+        'common/autocomplete_match_type.cc',
+        'common/autocomplete_match_type.h',
         'common/automation_constants.cc',
         'common/automation_constants.h',
         'common/automation_events.cc',
diff --git a/chrome/common/autocomplete_match_type.cc b/chrome/common/autocomplete_match_type.cc
new file mode 100644
index 0000000..bf3da0f6
--- /dev/null
+++ b/chrome/common/autocomplete_match_type.cc
@@ -0,0 +1,29 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/common/autocomplete_match_type.h"
+
+#include "base/basictypes.h"
+
+// static
+std::string AutocompleteMatchType::ToString(AutocompleteMatchType::Type type) {
+  const char* strings[] = {
+    "url-what-you-typed",
+    "history-url",
+    "history-title",
+    "history-body",
+    "history-keyword",
+    "navsuggest",
+    "search-what-you-typed",
+    "search-history",
+    "search-suggest",
+    "search-other-engine",
+    "extension-app",
+    "contact",
+    "bookmark-title",
+  };
+  COMPILE_ASSERT(arraysize(strings) == AutocompleteMatchType::NUM_TYPES,
+                 strings_array_must_match_type_enum);
+  return strings[type];
+}
diff --git a/chrome/common/autocomplete_match_type.h b/chrome/common/autocomplete_match_type.h
new file mode 100644
index 0000000..7255bf6
--- /dev/null
+++ b/chrome/common/autocomplete_match_type.h
@@ -0,0 +1,37 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_COMMON_AUTOCOMPLETE_MATCH_TYPE_H_
+#define CHROME_COMMON_AUTOCOMPLETE_MATCH_TYPE_H_
+
+#include <string>
+
+struct AutocompleteMatchType {
+  // Type of AutocompleteMatch. Typedef'ed in autocomplete_match.h. Defined here
+  // to pass the type details back and forth between the browser and renderer.
+  enum Type {
+    URL_WHAT_YOU_TYPED = 0,  // The input as a URL.
+    HISTORY_URL,             // A past page whose URL contains the input.
+    HISTORY_TITLE,           // A past page whose title contains the input.
+    HISTORY_BODY,            // A past page whose body contains the input.
+    HISTORY_KEYWORD,         // A past page whose keyword contains the input.
+    NAVSUGGEST,              // A suggested URL.
+    SEARCH_WHAT_YOU_TYPED,   // The input as a search query (with the default
+                             // engine).
+    SEARCH_HISTORY,          // A past search (with the default engine)
+                             // containing the input.
+    SEARCH_SUGGEST,          // A suggested search (with the default engine).
+    SEARCH_OTHER_ENGINE,     // A search with a non-default engine.
+    EXTENSION_APP,           // An Extension App with a title/url that contains
+                             // the input.
+    CONTACT,                 // One of the user's contacts.
+    BOOKMARK_TITLE,          // A bookmark whose title contains the input.
+    NUM_TYPES,
+  };
+
+  // Converts |type| to a string representation. Used in logging.
+  static std::string ToString(AutocompleteMatchType::Type type);
+};
+
+#endif  // CHROME_COMMON_AUTOCOMPLETE_MATCH_TYPE_H_