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.
5 #ifndef ATHENA_EXTENSIONS_PUBLIC_EXTENSION_APP_MODEL_BUILDER_H_
6 #define ATHENA_EXTENSIONS_PUBLIC_EXTENSION_APP_MODEL_BUILDER_H_
8 #include "athena/home/public/app_model_builder.h"
9 #include "base/macros.h"
10 #include "base/memory/ref_counted.h"
11 #include "extensions/browser/extension_registry_observer.h"
17 namespace extensions {
23 class ATHENA_EXPORT ExtensionAppModelBuilder
24 : public AppModelBuilder,
25 public extensions::ExtensionRegistryObserver {
27 explicit ExtensionAppModelBuilder(content::BrowserContext* browser_context);
28 ~ExtensionAppModelBuilder() override;
30 void RegisterAppListModel(app_list::AppListModel* model) override;
33 void AddItem(scoped_refptr<const extensions::Extension> extension);
35 // extensions::ExtensionRegistryObserver:
36 void OnExtensionInstalled(content::BrowserContext* browser_context,
37 const extensions::Extension* extension,
38 bool is_update) override;
39 void OnExtensionUninstalled(content::BrowserContext* browser_context,
40 const extensions::Extension* extension,
41 extensions::UninstallReason reason) override;
43 content::BrowserContext* browser_context_;
45 // Unowned pointer to the app list model.
46 app_list::AppListModel* model_;
48 DISALLOW_COPY_AND_ASSIGN(ExtensionAppModelBuilder);
53 #endif // ATHENA_EXTENSIONS_PUBLIC_EXTENSION_APP_MODEL_BUILDER_H_