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

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

Issue 536753003: Add recommended extension installation support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ext-3
Patch Set: rebase, more fix Created 6 years, 2 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
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(

Powered by Google App Engine
This is Rietveld 408576698