| 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..7f59006e240c51252cfd8de31f5186726f236c73 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:
|
| @@ -66,7 +69,8 @@ class RuntimeAPI : public BrowserContextKeyedAPI,
|
| void OnExtensionsReady();
|
| void OnExtensionLoaded(const Extension* extension);
|
| void OnExtensionInstalled(const Extension* extension);
|
| - void OnExtensionUninstalled(const Extension* extension);
|
| + void OnExtensionUninstalled(const Extension* extension,
|
| + UninstallReason reason);
|
|
|
| // BrowserContextKeyedAPI implementation:
|
| static const char* service_name() { return "RuntimeAPI"; }
|
| @@ -74,6 +78,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,
|
| + 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 +108,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 +145,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 {
|
|
|