Chromium Code Reviews| Index: chrome/browser/autocomplete/search_provider.cc |
| diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc |
| index 331a498f53666329f59a7096842933c0306eec03..389938df0072ae35678a7339f33253920625131a 100644 |
| --- a/chrome/browser/autocomplete/search_provider.cc |
| +++ b/chrome/browser/autocomplete/search_provider.cc |
| @@ -1509,8 +1509,11 @@ int SearchProvider::CalculateRelevanceForHistory( |
| AutocompleteMatch SearchProvider::NavigationToMatch( |
| const NavigationResult& navigation) { |
| - const base::string16& input = navigation.from_keyword_provider() ? |
| + const base::string16& full_input = navigation.from_keyword_provider() ? |
| keyword_input_.text() : input_.text(); |
| + // Actual input to use when matching, discarding trailing slash if any. |
|
Mark P
2014/02/19 00:26:19
This helps handle cases like input doodle.com/ wit
Peter Kasting
2014/02/19 20:39:32
What about e.g. matches where the "www." is only p
Mark P
2014/02/19 23:23:01
The code (below) uses BestUrlPrefix, exactly like
|
| + const base::string16 input = (*(full_input.rbegin()) == '/') ? |
| + full_input.substr(0, full_input.length() - 1) : full_input; |
| AutocompleteMatch match(this, navigation.relevance(), false, |
| AutocompleteMatchType::NAVSUGGEST); |
| match.destination_url = navigation.url(); |
| @@ -1543,16 +1546,19 @@ AutocompleteMatch SearchProvider::NavigationToMatch( |
| if (inline_autocomplete_offset != base::string16::npos) |
| ++inline_autocomplete_offset; |
| } |
| - if (!input_.prevent_inline_autocomplete() && |
| - (inline_autocomplete_offset != base::string16::npos)) { |
| + if (inline_autocomplete_offset != base::string16::npos) { |
|
Mark P
2014/02/19 00:26:19
The restructuring in this block allows handling si
|
| DCHECK(inline_autocomplete_offset <= match.fill_into_edit.length()); |
| + match.inline_autocompletion = |
| + match.fill_into_edit.substr(inline_autocomplete_offset); |
| // A navsuggestion can only be the default match when there is no |
| // keyword provider active, lest it appear first and break the user |
| - // out of keyword mode. |
| + // out of keyword mode. It can also only be default when we're not |
| + // preventing inline autocompletion (unless the inline autocompletion |
| + // would be empty). |
| match.allowed_to_be_default_match = |
| - (providers_.GetKeywordProviderURL() == NULL); |
| - match.inline_autocompletion = |
| - match.fill_into_edit.substr(inline_autocomplete_offset); |
| + (providers_.GetKeywordProviderURL() == NULL) && |
| + (!input_.prevent_inline_autocomplete() || |
| + match.inline_autocompletion.empty()); |
|
Peter Kasting
2014/02/19 20:39:32
Does this mean that an input of "doodle.com" won't
Mark P
2014/02/19 23:23:01
There's some subtlety here.
Technically, you're ri
|
| } |
| match.contents = navigation.match_contents(); |