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..9c74cca1f7fccc9068a5f2f0be5e7b7b25aae399 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. |
@@ -428,6 +437,17 @@ void ExternalProviderImpl::CreateExternalProviders( |
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::NO_FLAGS))); |
+ } |
+ |
// In tests don't install extensions from default external sources. |
// It would only slowdown tests and make them flaky. |
if (CommandLine::ForCurrentProcess()->HasSwitch( |