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

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

Issue 6258015: Remove wstring from autocomplete.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 // This file contains the keyword autocomplete provider. The keyword provider 5 // This file contains the keyword autocomplete provider. The keyword provider
6 // is responsible for remembering/suggesting user "search keyword queries" 6 // is responsible for remembering/suggesting user "search keyword queries"
7 // (e.g. "imdb Godzilla") and then fixing them up into valid URLs. An 7 // (e.g. "imdb Godzilla") and then fixing them up into valid URLs. An
8 // instance of it gets created and managed by the autocomplete controller. 8 // instance of it gets created and managed by the autocomplete controller.
9 // KeywordProvider uses a TemplateURLModel to find the set of keywords. 9 // KeywordProvider uses a TemplateURLModel to find the set of keywords.
10 // 10 //
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 public: 53 public:
54 KeywordProvider(ACProviderListener* listener, Profile* profile); 54 KeywordProvider(ACProviderListener* listener, Profile* profile);
55 // For testing. 55 // For testing.
56 KeywordProvider(ACProviderListener* listener, TemplateURLModel* model); 56 KeywordProvider(ACProviderListener* listener, TemplateURLModel* model);
57 57
58 // Returns the replacement string from the user input. The replacement 58 // Returns the replacement string from the user input. The replacement
59 // string is the portion of the input that does not contain the keyword. 59 // string is the portion of the input that does not contain the keyword.
60 // For example, the replacement string for "b blah" is blah. 60 // For example, the replacement string for "b blah" is blah.
61 // If |trim_leading_whitespace| is true then leading whitespace in 61 // If |trim_leading_whitespace| is true then leading whitespace in
62 // replacement string will be trimmed. 62 // replacement string will be trimmed.
63 static std::wstring SplitReplacementStringFromInput( 63 static string16 SplitReplacementStringFromInput(
64 const std::wstring& input, 64 const string16& input,
65 bool trim_leading_whitespace); 65 bool trim_leading_whitespace);
66 66
67 // Returns the matching substituting keyword for |input|, or NULL if there 67 // Returns the matching substituting keyword for |input|, or NULL if there
68 // is no keyword for the specified input. 68 // is no keyword for the specified input.
69 static const TemplateURL* GetSubstitutingTemplateURLForInput( 69 static const TemplateURL* GetSubstitutingTemplateURLForInput(
70 Profile* profile, 70 Profile* profile,
71 const AutocompleteInput& input, 71 const AutocompleteInput& input,
72 std::wstring* remaining_input); 72 string16* remaining_input);
73 73
74 // AutocompleteProvider 74 // AutocompleteProvider
75 virtual void Start(const AutocompleteInput& input, bool minimal_changes); 75 virtual void Start(const AutocompleteInput& input, bool minimal_changes);
76 virtual void Stop(); 76 virtual void Stop();
77 77
78 private: 78 private:
79 class ScopedEndExtensionKeywordMode; 79 class ScopedEndExtensionKeywordMode;
80 friend class ScopedEndExtensionKeywordMode; 80 friend class ScopedEndExtensionKeywordMode;
81 81
82 virtual ~KeywordProvider(); 82 virtual ~KeywordProvider();
83 83
84 // Extracts the keyword from |input| into |keyword|. Any remaining characters 84 // Extracts the keyword from |input| into |keyword|. Any remaining characters
85 // after the keyword are placed in |remaining_input|. Returns true if |input| 85 // after the keyword are placed in |remaining_input|. Returns true if |input|
86 // is valid and has a keyword. This makes use of SplitKeywordFromInput to 86 // is valid and has a keyword. This makes use of SplitKeywordFromInput to
87 // extract the keyword and remaining string, and uses 87 // extract the keyword and remaining string, and uses
88 // TemplateURLModel::CleanUserInputKeyword to remove unnecessary characters. 88 // TemplateURLModel::CleanUserInputKeyword to remove unnecessary characters.
89 // In general use this instead of SplitKeywordFromInput. 89 // In general use this instead of SplitKeywordFromInput.
90 // Leading whitespace in |*remaining_input| will be trimmed. 90 // Leading whitespace in |*remaining_input| will be trimmed.
91 static bool ExtractKeywordFromInput(const AutocompleteInput& input, 91 static bool ExtractKeywordFromInput(const AutocompleteInput& input,
92 std::wstring* keyword, 92 string16* keyword,
93 std::wstring* remaining_input); 93 string16* remaining_input);
94 94
95 // Extracts the next whitespace-delimited token from input and returns it. 95 // Extracts the next whitespace-delimited token from input and returns it.
96 // Sets |remaining_input| to everything after the first token (skipping over 96 // Sets |remaining_input| to everything after the first token (skipping over
97 // the first intervening whitespace). 97 // the first intervening whitespace).
98 // If |trim_leading_whitespace| is true then leading whitespace in 98 // If |trim_leading_whitespace| is true then leading whitespace in
99 // |*remaining_input| will be trimmed. 99 // |*remaining_input| will be trimmed.
100 static std::wstring SplitKeywordFromInput(const std::wstring& input, 100 static string16 SplitKeywordFromInput(const string16& input,
101 bool trim_leading_whitespace, 101 bool trim_leading_whitespace,
102 std::wstring* remaining_input); 102 string16* remaining_input);
103 103
104 // Fills in the "destination_url" and "contents" fields of |match| with the 104 // Fills in the "destination_url" and "contents" fields of |match| with the
105 // provided user input and keyword data. 105 // provided user input and keyword data.
106 static void FillInURLAndContents( 106 static void FillInURLAndContents(
107 const std::wstring& remaining_input, 107 const string16& remaining_input,
108 const TemplateURL* element, 108 const TemplateURL* element,
109 AutocompleteMatch* match); 109 AutocompleteMatch* match);
110 110
111 // Determines the relevance for some input, given its type, whether the user 111 // Determines the relevance for some input, given its type, whether the user
112 // typed the complete keyword, and whether the keyword needs query text (true 112 // typed the complete keyword, and whether the keyword needs query text (true
113 // if the keyword supports replacement and the user isn't in "prefer keyword 113 // if the keyword supports replacement and the user isn't in "prefer keyword
114 // matches" mode). 114 // matches" mode).
115 // If |allow_exact_keyword_match| is false, the relevance for complete 115 // If |allow_exact_keyword_match| is false, the relevance for complete
116 // keywords is degraded. 116 // keywords is degraded.
117 static int CalculateRelevance(AutocompleteInput::Type type, 117 static int CalculateRelevance(AutocompleteInput::Type type,
118 bool complete, 118 bool complete,
119 bool no_query_text_needed, 119 bool no_query_text_needed,
120 bool allow_exact_keyword_match); 120 bool allow_exact_keyword_match);
121 121
122 // Creates a fully marked-up AutocompleteMatch from the user's input. 122 // Creates a fully marked-up AutocompleteMatch from the user's input.
123 // If |relevance| is negative, calculate a relevance based on heuristics. 123 // If |relevance| is negative, calculate a relevance based on heuristics.
124 AutocompleteMatch CreateAutocompleteMatch( 124 AutocompleteMatch CreateAutocompleteMatch(
125 TemplateURLModel* model, 125 TemplateURLModel* model,
126 const std::wstring& keyword, 126 const string16& keyword,
127 const AutocompleteInput& input, 127 const AutocompleteInput& input,
128 size_t prefix_length, 128 size_t prefix_length,
129 const std::wstring& remaining_input, 129 const string16& remaining_input,
130 int relevance); 130 int relevance);
131 131
132 void EnterExtensionKeywordMode(const std::string& extension_id); 132 void EnterExtensionKeywordMode(const std::string& extension_id);
133 void MaybeEndExtensionKeywordMode(); 133 void MaybeEndExtensionKeywordMode();
134 134
135 // NotificationObserver interface. 135 // NotificationObserver interface.
136 virtual void Observe(NotificationType type, 136 virtual void Observe(NotificationType type,
137 const NotificationSource& source, 137 const NotificationSource& source,
138 const NotificationDetails& details); 138 const NotificationDetails& details);
139 139
(...skipping 17 matching lines...) Expand all
157 // If non-empty, holds the ID of the extension whose keyword is currently in 157 // If non-empty, holds the ID of the extension whose keyword is currently in
158 // the URL bar while the autocomplete popup is open. 158 // the URL bar while the autocomplete popup is open.
159 std::string current_keyword_extension_id_; 159 std::string current_keyword_extension_id_;
160 160
161 NotificationRegistrar registrar_; 161 NotificationRegistrar registrar_;
162 162
163 DISALLOW_COPY_AND_ASSIGN(KeywordProvider); 163 DISALLOW_COPY_AND_ASSIGN(KeywordProvider);
164 }; 164 };
165 165
166 #endif // CHROME_BROWSER_AUTOCOMPLETE_KEYWORD_PROVIDER_H_ 166 #endif // CHROME_BROWSER_AUTOCOMPLETE_KEYWORD_PROVIDER_H_
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/history_url_provider_unittest.cc ('k') | chrome/browser/autocomplete/keyword_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698