Index: chrome/browser/extensions/external_provider_impl.cc |
diff --git a/chrome/browser/extensions/external_provider_impl.cc b/chrome/browser/extensions/external_provider_impl.cc |
index dfa6b4fe46ae45f62e19b0125828434432a7ff2b..e62b60e20a064015c45207db325d740f57481b04 100644 |
--- a/chrome/browser/extensions/external_provider_impl.cc |
+++ b/chrome/browser/extensions/external_provider_impl.cc |
@@ -367,6 +367,7 @@ void ExternalProviderImpl::CreateExternalProviders( |
Profile* profile, |
ProviderCollection* provider_list) { |
scoped_refptr<ExternalLoader> external_loader; |
+ scoped_refptr<ExternalLoader> external_recommended_loader; |
extensions::Manifest::Location crx_location = Manifest::INVALID_LOCATION; |
#if defined(OS_CHROMEOS) |
policy::BrowserPolicyConnectorChromeOS* connector = |
@@ -389,11 +390,19 @@ void ExternalProviderImpl::CreateExternalProviders( |
} |
} else { |
external_loader = new ExternalPolicyLoader( |
- ExtensionManagementFactory::GetForBrowserContext(profile)); |
+ ExtensionManagementFactory::GetForBrowserContext(profile), |
+ ExternalPolicyLoader::FORCED); |
+ external_recommended_loader = new ExternalPolicyLoader( |
+ ExtensionManagementFactory::GetForBrowserContext(profile), |
+ ExternalPolicyLoader::RECOMMENDED); |
} |
#else |
external_loader = new ExternalPolicyLoader( |
- ExtensionManagementFactory::GetForBrowserContext(profile)); |
+ ExtensionManagementFactory::GetForBrowserContext(profile), |
+ ExternalPolicyLoader::FORCED); |
+ external_recommended_loader = new ExternalPolicyLoader( |
+ ExtensionManagementFactory::GetForBrowserContext(profile), |
+ ExternalPolicyLoader::RECOMMENDED); |
#endif |
// Policies are mandatory so they can't be skipped with command line flag. |
@@ -434,6 +443,17 @@ void ExternalProviderImpl::CreateExternalProviders( |
switches::kDisableDefaultApps)) |
return; |
+ // Extensions provided by recommended policies. |
+ if (external_recommended_loader.get()) { |
+ provider_list->push_back(linked_ptr<ExternalProviderInterface>( |
+ new ExternalProviderImpl(service, |
+ external_recommended_loader, |
+ profile, |
+ crx_location, |
+ Manifest::EXTERNAL_PREF_DOWNLOAD, |
+ Extension::WAS_INSTALLED_BY_DEFAULT))); |
Joao da Silva
2014/09/18 12:21:23
Why? The documentation for this flag says:
"|WAS_
binjin
2014/09/18 16:25:15
Done.
|
+ } |
+ |
// On Mac OS, items in /Library/... should be written by the superuser. |
// Check that all components of the path are writable by root only. |
ExternalPrefLoader::Options check_admin_permissions_on_mac; |