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

Side by Side Diff: chrome/browser/chromeos/launcher_search_provider/service.h

Issue 1208963003: Move GN obj files to target-specific dirs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: \ Created 5 years, 5 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
OLDNEW
(Empty)
1 // Copyright 2015 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 CHROME_BROWSER_CHROMEOS_LAUNCHER_SEARCH_PROVIDER_SERVICE_H_
6 #define CHROME_BROWSER_CHROMEOS_LAUNCHER_SEARCH_PROVIDER_SERVICE_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "chrome/browser/chromeos/launcher_search_provider/error_reporter.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/common/extensions/api/launcher_search_provider.h"
12 #include "components/keyed_service/core/keyed_service.h"
13 #include "content/public/browser/browser_context.h"
14 #include "extensions/browser/event_router.h"
15 #include "extensions/browser/extension_registry_observer.h"
16 #include "extensions/common/extension.h"
17
18 namespace app_list {
19 class LauncherSearchProvider;
20 } // namespace app_list
21
22 namespace chromeos {
23 namespace launcher_search_provider {
24
25 // Relevance score should be provided in a range from 0 to 4. 0 is the lowest
26 // relevance, 4 is the highest.
27 const int kMaxSearchResultScore = 4;
28
29 // Manages listener extensions and routes events. Listener extensions are
30 // extensions which are allowed to use this API. When this API becomes public,
31 // this API is white listed for file manager, and opt-in for other extensions.
32 // This service provides access control for it.
33 //
34 // TODO(yawano): Implement opt-in control (crbug.com/440649).
35 class Service : public KeyedService,
36 public extensions::ExtensionRegistryObserver {
37 public:
38 Service(Profile* profile, extensions::ExtensionRegistry* extension_registry);
39 ~Service() override;
40 static Service* Get(content::BrowserContext* context);
41
42 // Dispatches onQueryStarted events to listener extensions.
43 void OnQueryStarted(app_list::LauncherSearchProvider* provider,
44 const std::string& query,
45 const int max_result);
46
47 // Dispatches onQueryEnded events to listener extensions.
48 void OnQueryEnded();
49
50 // Dispatches onOpenResult event of |item_id| to |extension_id|.
51 void OnOpenResult(const extensions::ExtensionId& extension_id,
52 const std::string& item_id);
53
54 // Sets search results of a listener extension.
55 void SetSearchResults(
56 const extensions::Extension* extension,
57 scoped_ptr<ErrorReporter> error_reporter,
58 const int query_id,
59 const std::vector<linked_ptr<
60 extensions::api::launcher_search_provider::SearchResult>>& results);
61
62 // Returns true if there is a running query.
63 bool IsQueryRunning() const;
64
65 // extensions::ExtensionRegistryObserver override.
66 void OnExtensionLoaded(content::BrowserContext* browser_context,
67 const extensions::Extension* extension) override;
68 void OnExtensionUnloaded(
69 content::BrowserContext* browser_context,
70 const extensions::Extension* extension,
71 extensions::UnloadedExtensionInfo::Reason reason) override;
72
73 private:
74 // Cache listener extension ids and set them to
75 // |cached_listener_extension_ids_|.
76 void CacheListenerExtensionIds();
77
78 Profile* const profile_;
79 extensions::ExtensionRegistry* extension_registry_;
80 app_list::LauncherSearchProvider* provider_;
81 int query_id_;
82 bool is_query_running_;
83 scoped_ptr<std::set<extensions::ExtensionId>> cached_listener_extension_ids_;
84
85 DISALLOW_COPY_AND_ASSIGN(Service);
86 };
87
88 } // namespace launcher_search_provider
89 } // namespace chromeos
90
91 #endif // CHROME_BROWSER_CHROMEOS_LAUNCHER_SEARCH_PROVIDER_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698