| Index: chrome/browser/autocomplete/autocomplete.cc
 | 
| diff --git a/chrome/browser/autocomplete/autocomplete.cc b/chrome/browser/autocomplete/autocomplete.cc
 | 
| index 010617a9845c758f3cba72e84287e8254cf19926..0efd16d6cc2ffba99ae29b0e29bf30e210b6b41e 100644
 | 
| --- a/chrome/browser/autocomplete/autocomplete.cc
 | 
| +++ b/chrome/browser/autocomplete/autocomplete.cc
 | 
| @@ -95,6 +95,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;
 | 
|  
 | 
| @@ -166,6 +167,14 @@ AutocompleteInput::Type AutocompleteInput::Parse(
 | 
|      return URL;
 | 
|    }
 | 
|  
 | 
| +  if (LowerCaseEqualsASCII(parsed_scheme, chrome::kFileSystemScheme)) {
 | 
| +    // This could theoretically be a strange search, but let's check.
 | 
| +    // 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
 | 
| @@ -455,6 +464,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;
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |