Index: extensions/browser/api/runtime/runtime_api.h |
diff --git a/extensions/browser/api/runtime/runtime_api.h b/extensions/browser/api/runtime/runtime_api.h |
index e34139814d40f287a923f81baa21aa1faf0c7204..44e1dd3bbc525d18471937a30c51cb55c51a7ba4 100644 |
--- a/extensions/browser/api/runtime/runtime_api.h |
+++ b/extensions/browser/api/runtime/runtime_api.h |
@@ -7,11 +7,13 @@ |
#include <string> |
+#include "base/scoped_observer.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
#include "extensions/browser/api/runtime/runtime_api_delegate.h" |
#include "extensions/browser/browser_context_keyed_api_factory.h" |
#include "extensions/browser/extension_function.h" |
+#include "extensions/browser/extension_registry_observer.h" |
#include "extensions/browser/process_manager_observer.h" |
#include "extensions/browser/update_observer.h" |
#include "extensions/common/api/runtime.h" |
@@ -40,6 +42,7 @@ class ExtensionHost; |
// its related incognito instance. |
class RuntimeAPI : public BrowserContextKeyedAPI, |
public content::NotificationObserver, |
+ public ExtensionRegistryObserver, |
public UpdateObserver, |
public ProcessManagerObserver { |
public: |
@@ -64,9 +67,6 @@ class RuntimeAPI : public BrowserContextKeyedAPI, |
friend class BrowserContextKeyedAPIFactory<RuntimeAPI>; |
void OnExtensionsReady(); |
- void OnExtensionLoaded(const Extension* extension); |
- void OnExtensionInstalled(const Extension* extension); |
- void OnExtensionUninstalled(const Extension* extension); |
// BrowserContextKeyedAPI implementation: |
static const char* service_name() { return "RuntimeAPI"; } |
@@ -74,6 +74,19 @@ class RuntimeAPI : public BrowserContextKeyedAPI, |
static const bool kServiceIsNULLWhileTesting = true; |
virtual void Shutdown() OVERRIDE; |
+ // ExtensionRegistryObserver implementation. |
+ virtual void OnExtensionLoaded(content::BrowserContext* browser_context, |
+ const Extension* extension) OVERRIDE; |
+ virtual void OnExtensionWillBeInstalled( |
+ content::BrowserContext* browser_context, |
Devlin
2014/07/22 22:21:12
let's move this above the BCKAPI impl methods so t
rpaquay
2014/07/23 00:03:59
Done.
|
+ const Extension* extension, |
+ bool is_update, |
+ bool from_ephemeral, |
+ const std::string& old_name) OVERRIDE; |
+ virtual void OnExtensionUninstalled(content::BrowserContext* browser_context, |
+ const Extension* extension, |
+ UninstallReason reason) OVERRIDE; |
+ |
// extensions::UpdateObserver overrides: |
virtual void OnAppUpdateAvailable(const Extension* extension) OVERRIDE; |
virtual void OnChromeUpdateAvailable() OVERRIDE; |
@@ -91,6 +104,10 @@ class RuntimeAPI : public BrowserContextKeyedAPI, |
content::NotificationRegistrar registrar_; |
+ // Listen to extension notifications. |
+ ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> |
+ extension_registry_observer_; |
+ |
DISALLOW_COPY_AND_ASSIGN(RuntimeAPI); |
}; |
@@ -124,7 +141,8 @@ class RuntimeEventRouter { |
// Does any work needed at extension uninstall (e.g. load uninstall url). |
static void OnExtensionUninstalled(content::BrowserContext* context, |
- const std::string& extension_id); |
+ const std::string& extension_id, |
+ UninstallReason reason); |
}; |
class RuntimeGetBackgroundPageFunction : public UIThreadExtensionFunction { |