Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1783)

Unified Diff: extensions/browser/extension_registry.h

Issue 131743021: app_shell: Extract extension runtime data from ExtensionService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: TriggerOnUnloaded (runtime_data) Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/extension_registry.h
diff --git a/extensions/browser/extension_registry.h b/extensions/browser/extension_registry.h
index d878e61e84db8ec44e56741cad14925dd997c038..5a70cde37005f9407c7e3f6b1dc0fa35b614d7eb 100644
--- a/extensions/browser/extension_registry.h
+++ b/extensions/browser/extension_registry.h
@@ -9,6 +9,7 @@
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
+#include "base/observer_list.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
#include "extensions/common/extension_set.h"
@@ -18,6 +19,7 @@ class BrowserContext;
namespace extensions {
class Extension;
+class ExtensionRegistryObserver;
// ExtensionRegistry holds sets of the installed extensions for a given
// BrowserContext. An incognito browser context and its master browser context
@@ -55,6 +57,18 @@ class ExtensionRegistry : public BrowserContextKeyedService {
return blacklisted_extensions_;
}
+ // The usual observer interface.
not at google - send to devlin 2014/01/22 16:17:43 [musing] One nice thing about explicit dependenci
+ void AddObserver(ExtensionRegistryObserver* observer);
+ void RemoveObserver(ExtensionRegistryObserver* observer);
+
+ // Invokes the observer method OnExtensionUnloaded(). The extension must not
+ // be enabled at the time of the call.
+ void TriggerOnUnloaded(const Extension* extension);
not at google - send to devlin 2014/01/22 16:17:43 It looks like the notification also has an "unload
James Cook 2014/01/22 17:41:52 I don't understand what you mean by "might as well
not at google - send to devlin 2014/01/22 17:49:07 Up to you, I don't feel one way or the other, just
+
+ // Invokes the observer method OnExtensionDisabled(). The extension must be
+ // disabled at the time of the call.
+ void TriggerOnDisabled(const Extension* extension);
not at google - send to devlin 2014/01/22 16:17:43 It's interesting; there's no disabled notification
James Cook 2014/01/22 17:41:52 I agree it looks odd.
not at google - send to devlin 2014/01/22 17:49:07 I meant that it seems like we should clear all of
+
// Find an extension by ID using |include_mask| to pick the sets to search:
// * enabled_extensions() --> ExtensionRegistry::ENABLED
// * disabled_extensions() --> ExtensionRegistry::DISABLED
@@ -117,6 +131,8 @@ class ExtensionRegistry : public BrowserContextKeyedService {
// un-blacklisted.
ExtensionSet blacklisted_extensions_;
+ ObserverList<ExtensionRegistryObserver> observers_;
+
DISALLOW_COPY_AND_ASSIGN(ExtensionRegistry);
};

Powered by Google App Engine
This is Rietveld 408576698