Chromium Code Reviews| Index: chrome/browser/autocomplete/autocomplete.cc |
| diff --git a/chrome/browser/autocomplete/autocomplete.cc b/chrome/browser/autocomplete/autocomplete.cc |
| index e6404e44c1c3601421a6bc831baf296b7244b536..2c77c98d3c91a28c6416a591cf907acade48c8a6 100644 |
| --- a/chrome/browser/autocomplete/autocomplete.cc |
| +++ b/chrome/browser/autocomplete/autocomplete.cc |
| @@ -90,6 +90,7 @@ AutocompleteInput::AutocompleteInput(const string16& text, |
| if (((type_ == UNKNOWN) || (type_ == REQUESTED_URL) || (type_ == URL)) && |
| canonicalized_url.is_valid() && |
| (!canonicalized_url.IsStandard() || canonicalized_url.SchemeIsFile() || |
| + canonicalized_url.SchemeIsFileSystem() || |
| !canonicalized_url.host().empty())) |
| canonicalized_url_ = canonicalized_url; |
| @@ -161,6 +162,15 @@ AutocompleteInput::Type AutocompleteInput::Parse( |
| return URL; |
| } |
| + if (LowerCaseEqualsASCII(parsed_scheme, chrome::kFileSystemScheme)) { |
| + // This could theoretically be a strange search, but let's check. |
| + ParseFileSystemURL(text.data(), text.length(), parts); |
|
sky
2012/02/16 15:43:26
Is it really safe to reuse parts here?
ericu
2012/02/22 00:00:51
It would be if I'd remembered to clear out inner_p
|
| + // If it's got an inner_url with a scheme, it's a URL, whether it's valid or |
| + // not. |
| + if (parts->inner_parsed() && parts->inner_parsed()->scheme.is_valid()) |
| + return URL; |
| + } |
| + |
| // If the user typed a scheme, and it's HTTP or HTTPS, we know how to parse it |
| // well enough that we can fall through to the heuristics below. If it's |
| // something else, we can just determine our action based on what we do with |
| @@ -450,6 +460,9 @@ void AutocompleteInput::ParseForEmphasizeComponents( |
| host->reset(); |
| } |
| } |
| + } else if (LowerCaseEqualsASCII(scheme_str, chrome::kFileSystemScheme) && |
| + parts.inner_parsed() && parts.inner_parsed()->scheme.is_valid()) { |
| + *host = parts.inner_parsed()->host; |
| } |
| } |