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_PROVIDER_H_ | 5 #ifndef COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_H_ |
6 #define COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_H_ | 6 #define COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
144 // tracking its matches for this query and whether it is done processing the | 144 // tracking its matches for this query and whether it is done processing the |
145 // query. When new matches are available or the provider finishes, it | 145 // query. When new matches are available or the provider finishes, it |
146 // calls the controller's OnProviderUpdate() method. The controller can then | 146 // calls the controller's OnProviderUpdate() method. The controller can then |
147 // get the new matches using the provider's accessors. | 147 // get the new matches using the provider's accessors. |
148 // Exception: Matches available immediately after starting the query (that | 148 // Exception: Matches available immediately after starting the query (that |
149 // is, synchronously) do not cause any notifications to be sent. The | 149 // is, synchronously) do not cause any notifications to be sent. The |
150 // controller is expected to check for these without prompting (since | 150 // controller is expected to check for these without prompting (since |
151 // otherwise, starting each provider running would result in a flurry of | 151 // otherwise, starting each provider running would result in a flurry of |
152 // notifications). | 152 // notifications). |
153 // | 153 // |
154 // Once Stop() has been called, no more notifications should be sent. | 154 // Once Stop() has been called with user_inactivity_timer=false (i.e., the |
155 // user did an action to cancel this input), no more notifications should | |
156 // be sent. | |
Peter Kasting
2015/03/05 23:27:28
Nit: How about:
Once Stop() has been called, no m
Mark P
2015/03/06 21:24:34
Took (roughly) your suggestions. I like removing
| |
155 // | 157 // |
156 // |minimal_changes| is an optimization that lets the provider do less work | 158 // |minimal_changes| is an optimization that lets the provider do less work |
157 // when the |input|'s text hasn't changed. See the body of | 159 // when the |input|'s text hasn't changed. See the body of |
158 // OmniboxPopupModel::StartAutocomplete(). | 160 // OmniboxPopupModel::StartAutocomplete(). |
159 // | 161 // |
160 // |called_due_to_focus| is true when Start() is being called in response to | 162 // |called_due_to_focus| is true when Start() is being called in response to |
161 // the omnibox being focused, instead of due to e.g. user input changes. Most | 163 // the omnibox being focused, instead of due to e.g. user input changes. Most |
162 // providers should not provide matches in this case. Providers which want to | 164 // providers should not provide matches in this case. Providers which want to |
163 // display matches on focus can use this flag to know when they can do so. | 165 // display matches on focus can use this flag to know when they can do so. |
164 virtual void Start(const AutocompleteInput& input, | 166 virtual void Start(const AutocompleteInput& input, |
165 bool minimal_changes, | 167 bool minimal_changes, |
166 bool called_due_to_focus) = 0; | 168 bool called_due_to_focus) = 0; |
167 | 169 |
168 // Called when a provider must not make any more callbacks for the current | 170 // Called with user_inactivity_timer=false (i.e., the user did an action to |
169 // query. This will be called regardless of whether the provider is already | 171 // cancel this input) when a provider must not make any more callbacks for |
170 // done. If the provider caches any results, it should clear the cache based | 172 // the current query. When called with user_inactivity_timer=true, providers |
171 // on the value of |clear_cached_results|. | 173 // should generally not make any more callbacks for the current query, though |
172 virtual void Stop(bool clear_cached_results); | 174 // they are allowed. Stop() will be called regardless of whether the provider |
175 // is already done. If the provider caches any results, it should clear the | |
176 // cache based on the value of |clear_cached_results|. | |
Peter Kasting
2015/03/05 23:27:28
Nit: How about:
Advises the provider to stop proc
Mark P
2015/03/06 21:24:34
Very nice. Done.
| |
177 virtual void Stop(bool clear_cached_results, | |
178 bool user_inactivity_timer); | |
173 | 179 |
174 // Returns the enum equivalent to the name of this provider. | 180 // Returns the enum equivalent to the name of this provider. |
175 // TODO(derat): Make metrics use AutocompleteProvider::Type directly, or at | 181 // TODO(derat): Make metrics use AutocompleteProvider::Type directly, or at |
176 // least move this method to the metrics directory. | 182 // least move this method to the metrics directory. |
177 metrics::OmniboxEventProto_ProviderType AsOmniboxEventProviderType() const; | 183 metrics::OmniboxEventProto_ProviderType AsOmniboxEventProviderType() const; |
178 | 184 |
179 // Called to delete a match and the backing data that produced it. This | 185 // Called to delete a match and the backing data that produced it. This |
180 // match should not appear again in this or future queries. This can only be | 186 // match should not appear again in this or future queries. This can only be |
181 // called for matches the provider marks as deletable. This should only be | 187 // called for matches the provider marks as deletable. This should only be |
182 // called when no query is running. | 188 // called when no query is running. |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
246 ACMatches matches_; | 252 ACMatches matches_; |
247 bool done_; | 253 bool done_; |
248 | 254 |
249 Type type_; | 255 Type type_; |
250 | 256 |
251 private: | 257 private: |
252 DISALLOW_COPY_AND_ASSIGN(AutocompleteProvider); | 258 DISALLOW_COPY_AND_ASSIGN(AutocompleteProvider); |
253 }; | 259 }; |
254 | 260 |
255 #endif // COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_H_ | 261 #endif // COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_H_ |
OLD | NEW |