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

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: add ui changes Created 6 years, 3 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..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;

Powered by Google App Engine
This is Rietveld 408576698