Index: components/omnibox/autocomplete_provider.h |
diff --git a/components/omnibox/autocomplete_provider.h b/components/omnibox/autocomplete_provider.h |
index c86c274ed9f6ac8effe7671b674a1a46044979ae..255a33334de284781df743fd44c2f7ffeeb6563f 100644 |
--- a/components/omnibox/autocomplete_provider.h |
+++ b/components/omnibox/autocomplete_provider.h |
@@ -151,7 +151,8 @@ class AutocompleteProvider |
// otherwise, starting each provider running would result in a flurry of |
// notifications). |
// |
- // Once Stop() has been called, no more notifications should be sent. |
+ // Once Stop() has been called, usually no more notifications should be sent. |
+ // (See comments on Stop() below.) |
// |
// |minimal_changes| is an optimization that lets the provider do less work |
// when the |input|'s text hasn't changed. See the body of |
@@ -165,11 +166,21 @@ class AutocompleteProvider |
bool minimal_changes, |
bool called_due_to_focus) = 0; |
- // Called when a provider must not make any more callbacks for the current |
- // query. This will be called regardless of whether the provider is already |
- // done. If the provider caches any results, it should clear the cache based |
- // on the value of |clear_cached_results|. |
- virtual void Stop(bool clear_cached_results); |
+ // Advises the provider to stop processing. This may be called even if the |
+ // provider is already done. If the provider caches any results, it should |
+ // clear the cache based on the value of |clear_cached_results|. Normally, |
+ // once this is called, the provider should not send more notifications to |
+ // the controller. |
+ // |
+ // If |user_inactivity_timer| is true, Stop() is being called because it's |
+ // been a long time since the user started the current query, and returning |
+ // further asynchronous results would normally just be disruptive. Most |
+ // providers should still stop processing in this case, but continuing is |
+ // legal if there's a good reason the user is likely to want even long- |
+ // delayed asynchronous results, e.g. the user has explicitly invoked a |
+ // keyword extension and the extension is still processing the request. |
+ virtual void Stop(bool clear_cached_results, |
+ bool due_to_user_inactivity); |
// Returns the enum equivalent to the name of this provider. |
// TODO(derat): Make metrics use AutocompleteProvider::Type directly, or at |