Index: chrome/browser/apps/shortcut_manager.h |
diff --git a/chrome/browser/apps/shortcut_manager.h b/chrome/browser/apps/shortcut_manager.h |
index b94101e6542cc137ab80e3fb100b976e01b963cb..63e9112e30c1fa02bbc3570c0703be170f3b751a 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); |
}; |