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

Unified Diff: extensions/browser/extension_registry.cc

Issue 131743021: app_shell: Extract extension runtime data from ExtensionService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add ExtensionRegistry observer (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.cc
diff --git a/extensions/browser/extension_registry.cc b/extensions/browser/extension_registry.cc
index bc5247cdce2002d9cadaf121809d15f0bcbc8e59..cb1e8cc0a872b3ea704e9ea761f88192dccf1ef1 100644
--- a/extensions/browser/extension_registry.cc
+++ b/extensions/browser/extension_registry.cc
@@ -6,6 +6,7 @@
#include "base/strings/string_util.h"
#include "extensions/browser/extension_registry_factory.h"
+#include "extensions/browser/extension_registry_observer.h"
namespace extensions {
@@ -17,6 +18,14 @@ ExtensionRegistry* ExtensionRegistry::Get(content::BrowserContext* context) {
return ExtensionRegistryFactory::GetForBrowserContext(context);
}
+void ExtensionRegistry::AddObserver(ExtensionRegistryObserver* observer) {
+ observers_.AddObserver(observer);
+}
+
+void ExtensionRegistry::RemoveObserver(ExtensionRegistryObserver* observer) {
+ observers_.RemoveObserver(observer);
+}
+
const Extension* ExtensionRegistry::GetExtensionById(const std::string& id,
int include_mask) const {
std::string lowercase_id = StringToLowerASCII(id);
@@ -43,22 +52,42 @@ const Extension* ExtensionRegistry::GetExtensionById(const std::string& id,
return NULL;
}
-bool ExtensionRegistry::AddEnabled(
+void ExtensionRegistry::UnloadExtension(
const scoped_refptr<const Extension>& extension) {
- return enabled_extensions_.Insert(extension);
+ enabled_extensions_.Remove(extension->id());
+ disabled_extensions_.Remove(extension->id());
+ FOR_EACH_OBSERVER(ExtensionRegistryObserver,
+ observers_,
+ OnExtensionUnloaded(extension.get()));
}
-bool ExtensionRegistry::RemoveEnabled(const std::string& id) {
- return enabled_extensions_.Remove(id);
+void ExtensionRegistry::EnableExtension(
+ const scoped_refptr<const Extension>& extension) {
+ DCHECK(disabled_extensions_.Contains(extension->id()));
+ enabled_extensions_.Insert(extension);
+ disabled_extensions_.Remove(extension->id());
}
-bool ExtensionRegistry::AddDisabled(
+void ExtensionRegistry::DisableExtension(
const scoped_refptr<const Extension>& extension) {
- return disabled_extensions_.Insert(extension);
+ DCHECK(enabled_extensions_.Contains(extension->id()) ||
+ terminated_extensions_.Contains(extension->id()));
+ disabled_extensions_.Insert(extension);
+ enabled_extensions_.Remove(extension->id());
+ terminated_extensions_.Remove(extension->id());
+ FOR_EACH_OBSERVER(ExtensionRegistryObserver,
+ observers_,
+ OnExtensionDisabled(extension.get()));
}
-bool ExtensionRegistry::RemoveDisabled(const std::string& id) {
- return disabled_extensions_.Remove(id);
+bool ExtensionRegistry::AddEnabled(
+ const scoped_refptr<const Extension>& extension) {
+ return enabled_extensions_.Insert(extension);
+}
+
+bool ExtensionRegistry::AddDisabled(
+ const scoped_refptr<const Extension>& extension) {
+ return disabled_extensions_.Insert(extension);
}
bool ExtensionRegistry::AddTerminated(

Powered by Google App Engine
This is Rietveld 408576698