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
3 // found in the LICENSE file.
4 
5 #ifndef COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_PROVIDER_LISTENER_H_
6 #define COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_PROVIDER_LISTENER_H_
7 
8 class AutocompleteProviderListener {
9  public:
10   // Called by a provider as a notification that something has changed.
11   // |updated_matches| should be true iff the matches have changed in some
12   // way (they may not have changed if, for example, the provider did an
13   // asynchronous query to get more matches, came up with none, and is now
14   // giving up).
15   //
16   // NOTE: Providers MUST only call this method while processing asynchronous
17   // queries.  Do not call this for a synchronous query.
18   //
19   // NOTE: If a provider has finished, it should set done() to true BEFORE
20   // calling this method.
21   //
22   // NOTE: There's no parameter to tell the listener _which_ provider is
23   // calling it.  Because the AutocompleteController (the typical listener)
24   // doesn't cache the providers' individual matches locally, it has to get
25   // them all again when this is called anyway, so such a parameter wouldn't
26   // actually be useful.
27   virtual void OnProviderUpdate(bool updated_matches) = 0;
28 
29  protected:
~AutocompleteProviderListener()30   virtual ~AutocompleteProviderListener() {}
31 };
32 
33 #endif  // COMPONENTS_OMNIBOX_BROWSER_AUTOCOMPLETE_PROVIDER_LISTENER_H_
34