Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(943)

Side by Side Diff: chrome/browser/autocomplete/autocomplete_match.h

Issue 10692075: Enhance chrome://omnibox Presentation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Add braces. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/autocomplete/autocomplete_match.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_MATCH_H_ 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_MATCH_H_
6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_MATCH_H_ 6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_MATCH_H_
7 7
8 #include <map>
8 #include <string> 9 #include <string>
9 #include <vector> 10 #include <vector>
10 11
11 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
12 #include "chrome/browser/search_engines/template_url.h" 13 #include "chrome/browser/search_engines/template_url.h"
13 #include "content/public/common/page_transition_types.h" 14 #include "content/public/common/page_transition_types.h"
14 #include "googleurl/src/gurl.h" 15 #include "googleurl/src/gurl.h"
15 16
16 class AutocompleteProvider; 17 class AutocompleteProvider;
17 class Profile; 18 class Profile;
18 class TemplateURL; 19 class TemplateURL;
19 20
21 namespace base {
22 class Time;
23 } // namespace base
24
20 // AutocompleteMatch ---------------------------------------------------------- 25 // AutocompleteMatch ----------------------------------------------------------
21 26
22 // A single result line with classified spans. The autocomplete popup displays 27 // A single result line with classified spans. The autocomplete popup displays
23 // the 'contents' and the 'description' (the description is optional) in the 28 // the 'contents' and the 'description' (the description is optional) in the
24 // autocomplete dropdown, and fills in 'fill_into_edit' into the textbox when 29 // autocomplete dropdown, and fills in 'fill_into_edit' into the textbox when
25 // that line is selected. fill_into_edit may be the same as 'description' for 30 // that line is selected. fill_into_edit may be the same as 'description' for
26 // things like URLs, but may be different for searches or other providers. For 31 // things like URLs, but may be different for searches or other providers. For
27 // example, a search result may say "Search for asdf" as the description, but 32 // example, a search result may say "Search for asdf" as the description, but
28 // "asdf" should appear in the box. 33 // "asdf" should appear in the box.
29 struct AutocompleteMatch { 34 struct AutocompleteMatch {
(...skipping 27 matching lines...) Expand all
57 } 62 }
58 63
59 // Offset within the string that this classification starts 64 // Offset within the string that this classification starts
60 size_t offset; 65 size_t offset;
61 66
62 int style; 67 int style;
63 }; 68 };
64 69
65 typedef std::vector<ACMatchClassification> ACMatchClassifications; 70 typedef std::vector<ACMatchClassification> ACMatchClassifications;
66 71
72 // Type used by providers to attach additional, optional information to
73 // an AutocompleteMatch.
74 typedef std::map<std::string, std::string> AdditionalInfo;
75
67 // The type of this match. 76 // The type of this match.
68 enum Type { 77 enum Type {
69 URL_WHAT_YOU_TYPED = 0, // The input as a URL. 78 URL_WHAT_YOU_TYPED = 0, // The input as a URL.
70 HISTORY_URL, // A past page whose URL contains the input. 79 HISTORY_URL, // A past page whose URL contains the input.
71 HISTORY_TITLE, // A past page whose title contains the input. 80 HISTORY_TITLE, // A past page whose title contains the input.
72 HISTORY_BODY, // A past page whose body contains the input. 81 HISTORY_BODY, // A past page whose body contains the input.
73 HISTORY_KEYWORD, // A past page whose keyword contains the input. 82 HISTORY_KEYWORD, // A past page whose keyword contains the input.
74 NAVSUGGEST, // A suggested URL. 83 NAVSUGGEST, // A suggested URL.
75 SEARCH_WHAT_YOU_TYPED, // The input as a search query (with the default 84 SEARCH_WHAT_YOU_TYPED, // The input as a search query (with the default
76 // engine). 85 // engine).
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 // invoke its keyword), this returns the empty string. The result is that 191 // invoke its keyword), this returns the empty string. The result is that
183 // this function returns a non-empty string in the same cases as when the UI 192 // this function returns a non-empty string in the same cases as when the UI
184 // should show up as being "in keyword mode". 193 // should show up as being "in keyword mode".
185 string16 GetSubstitutingExplicitlyInvokedKeyword(Profile* profile) const; 194 string16 GetSubstitutingExplicitlyInvokedKeyword(Profile* profile) const;
186 195
187 // Returns the TemplateURL associated with this match. This may be NULL if 196 // Returns the TemplateURL associated with this match. This may be NULL if
188 // the match has no keyword OR if the keyword no longer corresponds to a valid 197 // the match has no keyword OR if the keyword no longer corresponds to a valid
189 // TemplateURL. See comments on |keyword| below. 198 // TemplateURL. See comments on |keyword| below.
190 TemplateURL* GetTemplateURL(Profile* profile) const; 199 TemplateURL* GetTemplateURL(Profile* profile) const;
191 200
201 // Adds optional information to the |additional_info| dictionary.
202 void RecordAdditionalInfo(const std::string& property,
203 const std::string& value);
204 void RecordAdditionalInfo(const std::string& property, int value);
205 void RecordAdditionalInfo(const std::string& property,
206 const base::Time& value);
207
192 // The provider of this match, used to remember which provider the user had 208 // The provider of this match, used to remember which provider the user had
193 // selected when the input changes. This may be NULL, in which case there is 209 // selected when the input changes. This may be NULL, in which case there is
194 // no provider (or memory of the user's selection). 210 // no provider (or memory of the user's selection).
195 AutocompleteProvider* provider; 211 AutocompleteProvider* provider;
196 212
197 // The relevance of this match. See table in autocomplete.h for scores 213 // The relevance of this match. See table in autocomplete.h for scores
198 // returned by various providers. This is used to rank matches among all 214 // returned by various providers. This is used to rank matches among all
199 // responding providers, so different providers must be carefully tuned to 215 // responding providers, so different providers must be carefully tuned to
200 // supply matches with appropriate relevance. 216 // supply matches with appropriate relevance.
201 // 217 //
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 292
277 // Optional search terms args. If present, 293 // Optional search terms args. If present,
278 // AutocompleteController::UpdateAssistedQueryStats() will incorporate this 294 // AutocompleteController::UpdateAssistedQueryStats() will incorporate this
279 // data with additional data it calculates and pass the completed struct to 295 // data with additional data it calculates and pass the completed struct to
280 // TemplateURLRef::ReplaceSearchTerms() to reset the match's |destination_url| 296 // TemplateURLRef::ReplaceSearchTerms() to reset the match's |destination_url|
281 // after the complete set of matches in the AutocompleteResult has been chosen 297 // after the complete set of matches in the AutocompleteResult has been chosen
282 // and sorted. Most providers will leave this as NULL, which will cause the 298 // and sorted. Most providers will leave this as NULL, which will cause the
283 // AutocompleteController to do no additional transformations. 299 // AutocompleteController to do no additional transformations.
284 scoped_ptr<TemplateURLRef::SearchTermsArgs> search_terms_args; 300 scoped_ptr<TemplateURLRef::SearchTermsArgs> search_terms_args;
285 301
302 // Information dictionary into which each provider can optionally record a
303 // property and associated value and which is presented in chrome://omnibox.
304 AdditionalInfo additional_info;
305
286 #ifndef NDEBUG 306 #ifndef NDEBUG
287 // Does a data integrity check on this match. 307 // Does a data integrity check on this match.
288 void Validate() const; 308 void Validate() const;
289 309
290 // Checks one text/classifications pair for valid values. 310 // Checks one text/classifications pair for valid values.
291 void ValidateClassifications( 311 void ValidateClassifications(
292 const string16& text, 312 const string16& text,
293 const ACMatchClassifications& classifications) const; 313 const ACMatchClassifications& classifications) const;
294 #endif 314 #endif
295 }; 315 };
296 316
297 typedef AutocompleteMatch::ACMatchClassification ACMatchClassification; 317 typedef AutocompleteMatch::ACMatchClassification ACMatchClassification;
298 typedef std::vector<ACMatchClassification> ACMatchClassifications; 318 typedef std::vector<ACMatchClassification> ACMatchClassifications;
299 typedef std::vector<AutocompleteMatch> ACMatches; 319 typedef std::vector<AutocompleteMatch> ACMatches;
300 320
301 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_MATCH_H_ 321 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_MATCH_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/autocomplete/autocomplete_match.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698