Index: trunk/src/chrome/browser/extensions/extension_system.cc |
=================================================================== |
--- trunk/src/chrome/browser/extensions/extension_system.cc (revision 202762) |
+++ trunk/src/chrome/browser/extensions/extension_system.cc (working copy) |
@@ -11,6 +11,7 @@ |
#include "base/strings/string_tokenizer.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/content_settings/cookie_settings.h" |
+#include "chrome/browser/extensions/api/declarative/rules_registry_service.h" |
#include "chrome/browser/extensions/blacklist.h" |
#include "chrome/browser/extensions/component_loader.h" |
#include "chrome/browser/extensions/event_router.h" |
@@ -287,6 +288,8 @@ |
} |
ExtensionSystemImpl::~ExtensionSystemImpl() { |
+ if (rules_registry_service_) |
+ rules_registry_service_->Shutdown(); |
} |
void ExtensionSystemImpl::Shutdown() { |
@@ -310,9 +313,23 @@ |
usb_device_resource_manager_.reset( |
new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO)); |
+ rules_registry_service_.reset(new RulesRegistryService(profile_)); |
+ rules_registry_service_->RegisterDefaultRulesRegistries(); |
+ |
shared_->Init(extensions_enabled); |
} |
+void ExtensionSystemImpl::InitForOTRProfile() { |
+ // Only initialize the RulesRegistryService of the OTR ExtensionSystem if the |
+ // regular ExtensionSystem has been initialized properly, as we depend on it. |
+ // Some ChromeOS browser tests don't initialize the regular ExtensionSystem |
+ // in login-tests. |
+ if (extension_service()) { |
+ rules_registry_service_.reset(new RulesRegistryService(profile_)); |
+ rules_registry_service_->RegisterDefaultRulesRegistries(); |
+ } |
+} |
+ |
ExtensionService* ExtensionSystemImpl::extension_service() { |
return shared_->extension_service(); |
} |
@@ -349,6 +366,10 @@ |
return shared_->event_router(); |
} |
+RulesRegistryService* ExtensionSystemImpl::rules_registry_service() { |
+ return rules_registry_service_.get(); |
+} |
+ |
ApiResourceManager<SerialConnection>* |
ExtensionSystemImpl::serial_connection_manager() { |
return serial_connection_manager_.get(); |