summaryrefslogtreecommitdiffstats
path: root/chrome/browser/apps/shortcut_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/apps/shortcut_manager.h')
-rw-r--r--chrome/browser/apps/shortcut_manager.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/chrome/browser/apps/shortcut_manager.h b/chrome/browser/apps/shortcut_manager.h
index b94101e..63e9112e 100644
--- a/chrome/browser/apps/shortcut_manager.h
+++ b/chrome/browser/apps/shortcut_manager.h
@@ -5,15 +5,21 @@
#ifndef CHROME_BROWSER_APPS_SHORTCUT_MANAGER_H_
#define CHROME_BROWSER_APPS_SHORTCUT_MANAGER_H_
+#include "base/scoped_observer.h"
#include "chrome/browser/profiles/profile_info_cache_observer.h"
#include "components/keyed_service/core/keyed_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/extension_registry_observer.h"
#include "extensions/common/extension.h"
class PrefService;
class Profile;
+namespace extensions {
+class ExtensionRegistry;
+}
+
namespace user_prefs {
class PrefRegistrySyncable;
}
@@ -21,6 +27,7 @@ class PrefRegistrySyncable;
// This class manages the installation of shortcuts for platform apps.
class AppShortcutManager : public KeyedService,
public content::NotificationObserver,
+ public extensions::ExtensionRegistryObserver,
public ProfileInfoCacheObserver {
public:
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
@@ -33,12 +40,22 @@ class AppShortcutManager : public KeyedService,
// creates shortcuts for all apps.
void OnceOffCreateShortcuts();
- // content::NotificationObserver
+ // content::NotificationObserver.
virtual void Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
- // ProfileInfoCacheObserver
+ // extensions::ExtensionRegistryObserver.
+ virtual void OnExtensionWillBeInstalled(
+ content::BrowserContext* browser_context,
+ const extensions::Extension* extension,
+ bool is_update,
+ const std::string& old_name) OVERRIDE;
+ virtual void OnExtensionUninstalled(
+ content::BrowserContext* browser_context,
+ const extensions::Extension* extension) OVERRIDE;
+
+ // ProfileInfoCacheObserver.
virtual void OnProfileWillBeRemoved(
const base::FilePath& profile_path) OVERRIDE;
@@ -50,6 +67,10 @@ class AppShortcutManager : public KeyedService,
bool is_profile_info_cache_observer_;
PrefService* prefs_;
+ ScopedObserver<extensions::ExtensionRegistry,
+ extensions::ExtensionRegistryObserver>
+ extension_registry_observer_;
+
DISALLOW_COPY_AND_ASSIGN(AppShortcutManager);
};