Index: chrome/browser/extensions/api/declarative/rules_registry_service.cc |
diff --git a/chrome/browser/extensions/api/declarative/rules_registry_service.cc b/chrome/browser/extensions/api/declarative/rules_registry_service.cc |
index 614712c2edfa1ee2c83822766f00ae024bf492dc..bede8418ae2e269512b31b8c93a855b493ba9e28 100644 |
--- a/chrome/browser/extensions/api/declarative/rules_registry_service.cc |
+++ b/chrome/browser/extensions/api/declarative/rules_registry_service.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/extensions/api/declarative/rules_registry_service.h" |
#include "base/bind.h" |
+#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
#include "chrome/browser/extensions/api/declarative/initializing_rules_registry.h" |
@@ -35,7 +36,8 @@ RulesRegistryService::RulesRegistryService(Profile* profile) |
: profile_(profile) { |
if (profile) { |
registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, |
- content::Source<Profile>(profile->GetOriginalProfile())); |
+ content::Source<Profile>(profile->GetOriginalProfile())); |
+ RegisterDefaultRulesRegistries(); |
} |
} |
@@ -70,6 +72,20 @@ void RulesRegistryService::Shutdown() { |
profile_, scoped_refptr<WebRequestRulesRegistry>(NULL))); |
} |
+static base::LazyInstance<ProfileKeyedAPIFactory<RulesRegistryService> > |
+g_factory = LAZY_INSTANCE_INITIALIZER; |
+ |
+// static |
+ProfileKeyedAPIFactory<RulesRegistryService>* |
+RulesRegistryService::GetFactoryInstance() { |
+ return &g_factory.Get(); |
+} |
+ |
+// static |
+RulesRegistryService* RulesRegistryService::Get(Profile* profile) { |
+ return ProfileKeyedAPIFactory<RulesRegistryService>::GetForProfile(profile); |
+} |
+ |
void RulesRegistryService::RegisterRulesRegistry( |
scoped_refptr<RulesRegistry> rule_registry) { |
const std::string event_name(rule_registry->event_name()); |