Chromium Code Reviews| 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; |