OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ | 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ |
6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ | 6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
11 | 11 |
12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "chrome/browser/autocomplete/autocomplete_input.h" |
13 #include "chrome/browser/autocomplete/autocomplete_match.h" | 14 #include "chrome/browser/autocomplete/autocomplete_match.h" |
14 #include "url/gurl.h" | 15 #include "url/gurl.h" |
15 | 16 |
16 class AutocompleteInput; | 17 class AutocompleteInput; |
17 class AutocompleteProvider; | 18 class AutocompleteProvider; |
18 class Profile; | 19 class Profile; |
19 | 20 |
20 // All matches from all providers for a particular query. This also tracks | 21 // All matches from all providers for a particular query. This also tracks |
21 // what the default match should be if the user doesn't manually select another | 22 // what the default match should be if the user doesn't manually select another |
22 // match. | 23 // match. |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 #else | 130 #else |
130 typedef ACMatches::iterator::difference_type matches_difference_type; | 131 typedef ACMatches::iterator::difference_type matches_difference_type; |
131 #endif | 132 #endif |
132 | 133 |
133 // operator=() by another name. | 134 // operator=() by another name. |
134 void CopyFrom(const AutocompleteResult& rhs); | 135 void CopyFrom(const AutocompleteResult& rhs); |
135 | 136 |
136 // Adds a single match. The match is inserted at the appropriate position | 137 // Adds a single match. The match is inserted at the appropriate position |
137 // based on relevancy and display order. This is ONLY for use after | 138 // based on relevancy and display order. This is ONLY for use after |
138 // SortAndCull() has been invoked, and preserves default_match_. | 139 // SortAndCull() has been invoked, and preserves default_match_. |
139 void AddMatch(const AutocompleteMatch& match); | 140 void AddMatch(AutocompleteInput::PageClassification page_classification, |
| 141 const AutocompleteMatch& match); |
140 | 142 |
141 // Populates |provider_to_matches| from |matches_|. | 143 // Populates |provider_to_matches| from |matches_|. |
142 void BuildProviderToMatches(ProviderToMatches* provider_to_matches) const; | 144 void BuildProviderToMatches(ProviderToMatches* provider_to_matches) const; |
143 | 145 |
144 // Returns true if |matches| contains a match with the same destination as | 146 // Returns true if |matches| contains a match with the same destination as |
145 // |match|. | 147 // |match|. |
146 static bool HasMatchByDestination(const AutocompleteMatch& match, | 148 static bool HasMatchByDestination(const AutocompleteMatch& match, |
147 const ACMatches& matches); | 149 const ACMatches& matches); |
148 | 150 |
149 // Copies matches into this result. |old_matches| gives the matches from the | 151 // Copies matches into this result. |old_matches| gives the matches from the |
150 // last result, and |new_matches| the results from this result. | 152 // last result, and |new_matches| the results from this result. |
151 void MergeMatchesByProvider(const ACMatches& old_matches, | 153 void MergeMatchesByProvider( |
152 const ACMatches& new_matches); | 154 AutocompleteInput::PageClassification page_classification, |
| 155 const ACMatches& old_matches, |
| 156 const ACMatches& new_matches); |
153 | 157 |
154 ACMatches matches_; | 158 ACMatches matches_; |
155 | 159 |
156 const_iterator default_match_; | 160 const_iterator default_match_; |
157 | 161 |
158 // The "alternate navigation URL", if any, for this result set. This is a URL | 162 // The "alternate navigation URL", if any, for this result set. This is a URL |
159 // to try offering as a navigational option in case the user navigated to the | 163 // to try offering as a navigational option in case the user navigated to the |
160 // URL of the default match but intended something else. For example, if the | 164 // URL of the default match but intended something else. For example, if the |
161 // user's local intranet contains site "foo", and the user types "foo", we | 165 // user's local intranet contains site "foo", and the user types "foo", we |
162 // default to searching for "foo" when the user may have meant to navigate | 166 // default to searching for "foo" when the user may have meant to navigate |
163 // there. In cases like this, the default match will point to the "search for | 167 // there. In cases like this, the default match will point to the "search for |
164 // 'foo'" result, and this will contain "http://foo/". | 168 // 'foo'" result, and this will contain "http://foo/". |
165 GURL alternate_nav_url_; | 169 GURL alternate_nav_url_; |
166 | 170 |
167 DISALLOW_COPY_AND_ASSIGN(AutocompleteResult); | 171 DISALLOW_COPY_AND_ASSIGN(AutocompleteResult); |
168 }; | 172 }; |
169 | 173 |
170 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ | 174 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ |
OLD | NEW |