| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_OMNIBOX_AUTOCOMPLETE_RESULT_H_ | 5 #ifndef COMPONENTS_OMNIBOX_AUTOCOMPLETE_RESULT_H_ |
| 6 #define COMPONENTS_OMNIBOX_AUTOCOMPLETE_RESULT_H_ | 6 #define COMPONENTS_OMNIBOX_AUTOCOMPLETE_RESULT_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // Returns the match at the given index. | 95 // Returns the match at the given index. |
| 96 const AutocompleteMatch& match_at(size_t index) const; | 96 const AutocompleteMatch& match_at(size_t index) const; |
| 97 AutocompleteMatch* match_at(size_t index); | 97 AutocompleteMatch* match_at(size_t index); |
| 98 | 98 |
| 99 // Get the default match for the query (not necessarily the first). Returns | 99 // Get the default match for the query (not necessarily the first). Returns |
| 100 // end() if there is no default match. | 100 // end() if there is no default match. |
| 101 const_iterator default_match() const { return default_match_; } | 101 const_iterator default_match() const { return default_match_; } |
| 102 | 102 |
| 103 // Returns true if the top match is a verbatim search or URL match (see | 103 // Returns true if the top match is a verbatim search or URL match (see |
| 104 // IsVerbatimType() in autocomplete_match.h), and the next match is not also | 104 // IsVerbatimType() in autocomplete_match.h), and the next match is not also |
| 105 // some kind of verbatim match. In this case, the top match will be hidden, | |
| 106 // and nothing in the dropdown will appear selected by default; hitting enter | |
| 107 // will navigate to the (hidden) default match, while pressing the down arrow | |
| 108 // key will select the first visible match, which is actually the second match | |
| 109 // in the result set. | |
| 110 // | |
| 111 // Hiding the top match in these cases is possible because users should | |
| 112 // already know what will happen on hitting enter from the omnibox text | |
| 113 // itself, without needing to see the same text appear again, selected, just | |
| 114 // below their typing. Instead, by hiding the verbatim match, there is one | |
| 115 // less line to skip over in order to visually scan downwards to see other | |
| 116 // suggested matches. This makes it more likely that users will see and | |
| 117 // select useful non-verbatim matches. (Note that hiding the verbatim match | |
| 118 // this way is similar to how most other browsers' address bars behave.) | |
| 119 // | |
| 120 // We avoid hiding when the top two matches are both verbatim in order to | |
| 121 // avoid potential confusion if a user were to see the second match just below | |
| 122 // their typing and assume it would be the default action. | |
| 123 // | |
| 124 // Note that if the top match should be hidden and it is the only match, | |
| 125 // the dropdown should be closed. | |
| 126 bool ShouldHideTopMatch() const; | |
| 127 | |
| 128 // Returns true if the top match is a verbatim search or URL match (see | |
| 129 // IsVerbatimType() in autocomplete_match.h), and the next match is not also | |
| 130 // some kind of verbatim match. | 105 // some kind of verbatim match. |
| 131 bool TopMatchIsStandaloneVerbatimMatch() const; | 106 bool TopMatchIsStandaloneVerbatimMatch() const; |
| 132 | 107 |
| 133 const GURL& alternate_nav_url() const { return alternate_nav_url_; } | 108 const GURL& alternate_nav_url() const { return alternate_nav_url_; } |
| 134 | 109 |
| 135 // Clears the matches for this result set. | 110 // Clears the matches for this result set. |
| 136 void Reset(); | 111 void Reset(); |
| 137 | 112 |
| 138 void Swap(AutocompleteResult* other); | 113 void Swap(AutocompleteResult* other); |
| 139 | 114 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 // user's local intranet contains site "foo", and the user types "foo", we | 174 // user's local intranet contains site "foo", and the user types "foo", we |
| 200 // default to searching for "foo" when the user may have meant to navigate | 175 // default to searching for "foo" when the user may have meant to navigate |
| 201 // there. In cases like this, the default match will point to the "search for | 176 // there. In cases like this, the default match will point to the "search for |
| 202 // 'foo'" result, and this will contain "http://foo/". | 177 // 'foo'" result, and this will contain "http://foo/". |
| 203 GURL alternate_nav_url_; | 178 GURL alternate_nav_url_; |
| 204 | 179 |
| 205 DISALLOW_COPY_AND_ASSIGN(AutocompleteResult); | 180 DISALLOW_COPY_AND_ASSIGN(AutocompleteResult); |
| 206 }; | 181 }; |
| 207 | 182 |
| 208 #endif // COMPONENTS_OMNIBOX_AUTOCOMPLETE_RESULT_H_ | 183 #endif // COMPONENTS_OMNIBOX_AUTOCOMPLETE_RESULT_H_ |
| OLD | NEW |