| Index: chrome/browser/autocomplete/autocomplete_input.cc | 
| diff --git a/chrome/browser/autocomplete/autocomplete_input.cc b/chrome/browser/autocomplete/autocomplete_input.cc | 
| index 2e18481111b70ebb0d5c2820581f6cef78d53c92..36652d4d5594592627fc720c4641c1dd49065d38 100644 | 
| --- a/chrome/browser/autocomplete/autocomplete_input.cc | 
| +++ b/chrome/browser/autocomplete/autocomplete_input.cc | 
| @@ -32,7 +32,7 @@ | 
| AutocompleteInput::AutocompleteInput() | 
| : cursor_position_(base::string16::npos), | 
| current_page_classification_(AutocompleteInput::INVALID_SPEC), | 
| -      type_(metrics::OmniboxInputType::INVALID), | 
| +      type_(INVALID), | 
| prevent_inline_autocomplete_(false), | 
| prefer_keyword_(false), | 
| allow_exact_keyword_match_(true), | 
| @@ -69,11 +69,10 @@ | 
| GURL canonicalized_url; | 
| type_ = Parse(text_, desired_tld, &parts_, &scheme_, &canonicalized_url); | 
|  | 
| -  if (type_ == metrics::OmniboxInputType::INVALID) | 
| +  if (type_ == INVALID) | 
| return; | 
|  | 
| -  if (((type_ == metrics::OmniboxInputType::UNKNOWN) || | 
| -       (type_ == metrics::OmniboxInputType::URL)) && | 
| +  if (((type_ == UNKNOWN) || (type_ == URL)) && | 
| canonicalized_url.is_valid() && | 
| (!canonicalized_url.IsStandard() || canonicalized_url.SchemeIsFile() || | 
| canonicalized_url.SchemeIsFileSystem() || | 
| @@ -99,10 +98,9 @@ | 
|  | 
| // static | 
| size_t AutocompleteInput::RemoveForcedQueryStringIfNecessary( | 
| -    AutocompleteInput::Type type, | 
| +    Type type, | 
| base::string16* text) { | 
| -  if ((type != metrics::OmniboxInputType::FORCED_QUERY) || text->empty() || | 
| -      (*text)[0] != L'?') | 
| +  if (type != FORCED_QUERY || text->empty() || (*text)[0] != L'?') | 
| return 0; | 
| // Drop the leading '?'. | 
| text->erase(0, 1); | 
| @@ -110,17 +108,18 @@ | 
| } | 
|  | 
| // static | 
| -std::string AutocompleteInput::TypeToString(AutocompleteInput::Type type) { | 
| +std::string AutocompleteInput::TypeToString(Type type) { | 
| switch (type) { | 
| -    case metrics::OmniboxInputType::INVALID:      return "invalid"; | 
| -    case metrics::OmniboxInputType::UNKNOWN:      return "unknown"; | 
| -    case metrics::OmniboxInputType::DEPRECATED_REQUESTED_URL: | 
| -      return "deprecated-requested-url"; | 
| -    case metrics::OmniboxInputType::URL:          return "url"; | 
| -    case metrics::OmniboxInputType::QUERY:        return "query"; | 
| -    case metrics::OmniboxInputType::FORCED_QUERY: return "forced-query"; | 
| -  } | 
| -  return std::string(); | 
| +    case INVALID:       return "invalid"; | 
| +    case UNKNOWN:       return "unknown"; | 
| +    case URL:           return "url"; | 
| +    case QUERY:         return "query"; | 
| +    case FORCED_QUERY:  return "forced-query"; | 
| + | 
| +    default: | 
| +      NOTREACHED(); | 
| +      return std::string(); | 
| +  } | 
| } | 
|  | 
| // static | 
| @@ -132,12 +131,12 @@ | 
| GURL* canonicalized_url) { | 
| size_t first_non_white = text.find_first_not_of(base::kWhitespaceUTF16, 0); | 
| if (first_non_white == base::string16::npos) | 
| -    return metrics::OmniboxInputType::INVALID;  // All whitespace. | 
| +    return INVALID;  // All whitespace. | 
|  | 
| if (text[first_non_white] == L'?') { | 
| // If the first non-whitespace character is a '?', we magically treat this | 
| // as a query. | 
| -    return metrics::OmniboxInputType::FORCED_QUERY; | 
| +    return FORCED_QUERY; | 
| } | 
|  | 
| // Ask our parsing back-end to help us understand what the user typed.  We | 
| @@ -160,13 +159,13 @@ | 
| *canonicalized_url = URLFixerUpper::FixupURL(base::UTF16ToUTF8(text), | 
| base::UTF16ToUTF8(desired_tld)); | 
| if (!canonicalized_url->is_valid()) | 
| -    return metrics::OmniboxInputType::QUERY; | 
| +    return QUERY; | 
|  | 
| if (LowerCaseEqualsASCII(parsed_scheme, url::kFileScheme)) { | 
| // A user might or might not type a scheme when entering a file URL.  In | 
| // either case, |parsed_scheme| will tell us that this is a file URL, but | 
| // |parts->scheme| might be empty, e.g. if the user typed "C:\foo". | 
| -    return metrics::OmniboxInputType::URL; | 
| +    return URL; | 
| } | 
|  | 
| // If the user typed a scheme, and it's HTTP or HTTPS, we know how to parse it | 
| @@ -187,7 +186,7 @@ | 
| LowerCaseEqualsASCII(parsed_scheme, content::kViewSourceScheme) || | 
| LowerCaseEqualsASCII(parsed_scheme, url::kJavaScriptScheme) || | 
| LowerCaseEqualsASCII(parsed_scheme, url::kDataScheme)) | 
| -      return metrics::OmniboxInputType::URL; | 
| +      return URL; | 
|  | 
| // Not an internal protocol.  Check and see if the user has explicitly | 
| // opened this scheme as a URL before, or if the "scheme" is actually a | 
| @@ -203,12 +202,12 @@ | 
| base::UTF16ToUTF8(parsed_scheme), true); | 
| switch (block_state) { | 
| case ExternalProtocolHandler::DONT_BLOCK: | 
| -        return metrics::OmniboxInputType::URL; | 
| +        return URL; | 
|  | 
| case ExternalProtocolHandler::BLOCK: | 
| // If we don't want the user to open the URL, don't let it be navigated | 
| // to at all. | 
| -        return metrics::OmniboxInputType::QUERY; | 
| +        return QUERY; | 
|  | 
| default: { | 
| // We don't know about this scheme.  It might be that the user typed a | 
| @@ -219,14 +218,13 @@ | 
| url::Parsed http_parts; | 
| base::string16 http_scheme; | 
| GURL http_canonicalized_url; | 
| -        AutocompleteInput::Type http_type = | 
| -            Parse(http_scheme_prefix + text, desired_tld, &http_parts, | 
| -                  &http_scheme, &http_canonicalized_url); | 
| +        Type http_type = Parse(http_scheme_prefix + text, desired_tld, | 
| +                               &http_parts, &http_scheme, | 
| +                               &http_canonicalized_url); | 
| DCHECK_EQ(std::string(url::kHttpScheme), | 
| base::UTF16ToUTF8(http_scheme)); | 
|  | 
| -        if ((http_type == metrics::OmniboxInputType::URL) && | 
| -            http_parts.username.is_nonempty() && | 
| +        if ((http_type == URL) && http_parts.username.is_nonempty() && | 
| http_parts.password.is_nonempty()) { | 
| // Manually re-jigger the parsed parts to match |text| (without the | 
| // http scheme added). | 
| @@ -250,7 +248,7 @@ | 
| scheme->clear(); | 
| *canonicalized_url = http_canonicalized_url; | 
|  | 
| -          return metrics::OmniboxInputType::URL; | 
| +          return URL; | 
| } | 
|  | 
| // We don't know about this scheme and it doesn't look like the user | 
| @@ -259,7 +257,7 @@ | 
| // the option of treating it as a URL if we're wrong. | 
| // Note that SegmentURL() is smart so we aren't tricked by "c:\foo" or | 
| // "www.example.com:81" in this case. | 
| -        return metrics::OmniboxInputType::UNKNOWN; | 
| +        return UNKNOWN; | 
| } | 
| } | 
| } | 
| @@ -273,7 +271,7 @@ | 
| // valid, non-standard URL; for standard URLs, an empty host would have | 
| // resulted in an invalid |canonicalized_url| above.) | 
| if (!parts->host.is_nonempty()) | 
| -    return metrics::OmniboxInputType::QUERY; | 
| +    return QUERY; | 
|  | 
| // Sanity-check: GURL should have failed to canonicalize this URL if it had an | 
| // invalid port. | 
| @@ -299,14 +297,11 @@ | 
| base::UTF16ToUTF8(host_with_tld), | 
| net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES, | 
| net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); | 
| -      if (tld_length != std::string::npos) { | 
| -        // Something like "99999999999" that looks like a bad IP | 
| -        // address, but becomes valid on attaching a TLD. | 
| -        return metrics::OmniboxInputType::URL; | 
| -      } | 
| +      if (tld_length != std::string::npos) | 
| +        return URL;  // Something like "99999999999" that looks like a bad IP | 
| +                     // address, but becomes valid on attaching a TLD. | 
| } | 
| -    // Could be a broken IP address, etc. | 
| -    return metrics::OmniboxInputType::QUERY; | 
| +    return QUERY;  // Could be a broken IP address, etc. | 
| } | 
|  | 
|  | 
| @@ -340,19 +335,18 @@ | 
| // These are rare, though probably possible in intranets. | 
| return (parts->scheme.is_nonempty() || | 
| ((registry_length != 0) && | 
| -            (host.find(' ') == base::string16::npos))) ? | 
| -        metrics::OmniboxInputType::UNKNOWN : metrics::OmniboxInputType::QUERY; | 
| +            (host.find(' ') == base::string16::npos))) ? UNKNOWN : QUERY; | 
| } | 
|  | 
| // Now that we've ruled out all schemes other than http or https and done a | 
| // little more sanity checking, the presence of a scheme means this is likely | 
| // a URL. | 
| if (parts->scheme.is_nonempty()) | 
| -    return metrics::OmniboxInputType::URL; | 
| +    return URL; | 
|  | 
| // See if the host is an IP address. | 
| if (host_info.family == url::CanonHostInfo::IPV6) | 
| -    return metrics::OmniboxInputType::URL; | 
| +    return URL; | 
| // If the user originally typed a host that looks like an IP address (a | 
| // dotted quad), they probably want to open it.  If the original input was | 
| // something else (like a single number), they probably wanted to search for | 
| @@ -365,27 +359,27 @@ | 
| // below. | 
| if ((host_info.family == url::CanonHostInfo::IPV4) && | 
| (host_info.num_ipv4_components == 4)) | 
| -    return metrics::OmniboxInputType::URL; | 
| +    return URL; | 
|  | 
| // Presence of a password means this is likely a URL.  Note that unless the | 
| // user has typed an explicit "http://" or similar, we'll probably think that | 
| // the username is some unknown scheme, and bail out in the scheme-handling | 
| // code above. | 
| if (parts->password.is_nonempty()) | 
| -    return metrics::OmniboxInputType::URL; | 
| +    return URL; | 
|  | 
| // Trailing slashes force the input to be treated as a URL. | 
| if (parts->path.is_nonempty()) { | 
| char c = text[parts->path.end() - 1]; | 
| if ((c == '\\') || (c == '/')) | 
| -      return metrics::OmniboxInputType::URL; | 
| +      return URL; | 
| } | 
|  | 
| // If there is more than one recognized non-host component, this is likely to | 
| // be a URL, even if the TLD is unknown (in which case this is likely an | 
| // intranet URL). | 
| if (NumNonHostComponents(*parts) > 1) | 
| -    return metrics::OmniboxInputType::URL; | 
| +    return URL; | 
|  | 
| // If the host has a known TLD or a port, it's probably a URL, with the | 
| // following exceptions: | 
| @@ -398,16 +392,14 @@ | 
| // Note that we special-case "localhost" as a known hostname. | 
| if ((host_info.family != url::CanonHostInfo::IPV4) && | 
| ((registry_length != 0) || (host == base::ASCIIToUTF16("localhost") || | 
| -       parts->port.is_nonempty()))) { | 
| -    return parts->username.is_nonempty() ? metrics::OmniboxInputType::UNKNOWN : | 
| -                                           metrics::OmniboxInputType::URL; | 
| -  } | 
| +       parts->port.is_nonempty()))) | 
| +    return parts->username.is_nonempty() ? UNKNOWN : URL; | 
|  | 
| // If we reach this point, we know there's no known TLD on the input, so if | 
| // the user wishes to add a desired_tld, the fixup code will oblige; thus this | 
| // is a URL. | 
| if (!desired_tld.empty()) | 
| -    return metrics::OmniboxInputType::URL; | 
| +    return URL; | 
|  | 
| // No scheme, password, port, path, and no known TLD on the host. | 
| // This could be: | 
| @@ -426,7 +418,7 @@ | 
| //   QUERY.  Since this is indistinguishable from the case above, and this | 
| //   case is much more likely, claim these are UNKNOWN, which should default | 
| //   to the right thing and let users correct us on a case-by-case basis. | 
| -  return metrics::OmniboxInputType::UNKNOWN; | 
| +  return UNKNOWN; | 
| } | 
|  | 
| // static | 
| @@ -531,7 +523,7 @@ | 
| cursor_position_ = base::string16::npos; | 
| current_url_ = GURL(); | 
| current_page_classification_ = AutocompleteInput::INVALID_SPEC; | 
| -  type_ = metrics::OmniboxInputType::INVALID; | 
| +  type_ = INVALID; | 
| parts_ = url::Parsed(); | 
| scheme_.clear(); | 
| canonicalized_url_ = GURL(); | 
|  |