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

Unified Diff: chrome/browser/extensions/extension_system.cc

Issue 10831008: Refactor and fix declarative webRequest API permissions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed license headers Created 8 years, 5 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
« no previous file with comments | « chrome/browser/extensions/extension_system.h ('k') | chrome/browser/extensions/test_extension_system.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_system.cc
diff --git a/chrome/browser/extensions/extension_system.cc b/chrome/browser/extensions/extension_system.cc
index e5ca663d8900064eca58ea4fd1c7384c9bc8f080..b451ab02005721d23331f94c8df11fdd302e5d42 100644
--- a/chrome/browser/extensions/extension_system.cc
+++ b/chrome/browser/extensions/extension_system.cc
@@ -73,8 +73,6 @@ ExtensionSystemImpl::Shared::Shared(Profile* profile)
}
ExtensionSystemImpl::Shared::~Shared() {
- if (rules_registry_service_.get())
- rules_registry_service_->Shutdown();
}
void ExtensionSystemImpl::Shared::InitPrefs() {
@@ -134,9 +132,6 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
// These services must be registered before the ExtensionService tries to
// load any extensions.
{
- rules_registry_service_.reset(new RulesRegistryService(profile_));
- rules_registry_service_->RegisterDefaultRulesRegistries();
-
management_policy_.reset(new ManagementPolicy);
RegisterManagementPolicyProviders();
}
@@ -236,10 +231,6 @@ EventRouter* ExtensionSystemImpl::Shared::event_router() {
return extension_event_router_.get();
}
-RulesRegistryService* ExtensionSystemImpl::Shared::rules_registry_service() {
- return rules_registry_service_.get();
-}
-
//
// ExtensionSystemImpl
//
@@ -257,13 +248,15 @@ ExtensionSystemImpl::ExtensionSystemImpl(Profile* profile)
}
ExtensionSystemImpl::~ExtensionSystemImpl() {
+ if (rules_registry_service_.get())
+ rules_registry_service_->Shutdown();
}
void ExtensionSystemImpl::Shutdown() {
extension_process_manager_.reset();
}
-void ExtensionSystemImpl::Init(bool extensions_enabled) {
+void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) {
DCHECK(!profile_->IsOffTheRecord());
if (user_script_master() || extension_service())
return; // Already initialized.
@@ -285,9 +278,23 @@ void ExtensionSystemImpl::Init(bool extensions_enabled) {
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();
}
@@ -335,7 +342,7 @@ EventRouter* ExtensionSystemImpl::event_router() {
}
RulesRegistryService* ExtensionSystemImpl::rules_registry_service() {
- return shared_->rules_registry_service();
+ return rules_registry_service_.get();
}
ApiResourceManager<SerialConnection>*
@@ -343,7 +350,7 @@ ExtensionSystemImpl::serial_connection_manager() {
return serial_connection_manager_.get();
}
-ApiResourceManager<Socket>*ExtensionSystemImpl::socket_manager() {
+ApiResourceManager<Socket>* ExtensionSystemImpl::socket_manager() {
return socket_manager_.get();
}
« no previous file with comments | « chrome/browser/extensions/extension_system.h ('k') | chrome/browser/extensions/test_extension_system.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698