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

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

Issue 12221065: Disable normal default extensions in case of managed users (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed tests Created 7 years, 10 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
« no previous file with comments | « no previous file | chrome/browser/managed_mode/managed_user_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 cef7903ba20cfcd20b99de9ef4a9d757d5cba2d6..d067778b7d22511211de141885bc539ad53f4903 100644
--- a/chrome/browser/extensions/external_provider_impl.cc
+++ b/chrome/browser/extensions/external_provider_impl.cc
@@ -27,6 +27,11 @@
#include "content/public/browser/browser_thread.h"
#include "ui/base/l10n/l10n_util.h"
+#if defined(ENABLE_MANAGED_USERS)
+#include "chrome/browser/managed_mode/managed_user_service.h"
+#include "chrome/browser/managed_mode/managed_user_service_factory.h"
+#endif
+
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/policy/app_pack_updater.h"
@@ -356,84 +361,98 @@ void ExternalProviderImpl::CreateExternalProviders(
Extension::WAS_INSTALLED_BY_DEFAULT;
#endif
+ bool is_managed_profile = false;
+ int external_apps_path_id = chrome::DIR_EXTERNAL_EXTENSIONS;
+#if defined(ENABLE_MANAGED_USERS)
+ ManagedUserService* managed_user_service =
+ ManagedUserServiceFactory::GetForProfile(profile);
+ is_managed_profile = managed_user_service->ProfileIsManaged();
+ if (is_managed_profile)
+ external_apps_path_id = chrome::DIR_MANAGED_USERS_DEFAULT_APPS;
+#endif
+
if (!is_chromeos_demo_session) {
provider_list->push_back(
linked_ptr<ExternalProviderInterface>(
new ExternalProviderImpl(
service,
- new ExternalPrefLoader(chrome::DIR_EXTERNAL_EXTENSIONS,
+ new ExternalPrefLoader(external_apps_path_id,
check_admin_permissions_on_mac),
Manifest::EXTERNAL_PREF,
Manifest::EXTERNAL_PREF_DOWNLOAD,
bundled_extension_creation_flags)));
}
+ if (!is_managed_profile) {
#if defined(OS_CHROMEOS) || defined (OS_MACOSX)
- // Define a per-user source of external extensions.
- // On Chrome OS, this serves as a source for OEM customization.
- provider_list->push_back(
- linked_ptr<ExternalProviderInterface>(
- new ExternalProviderImpl(
- service,
- new ExternalPrefLoader(chrome::DIR_USER_EXTERNAL_EXTENSIONS,
- ExternalPrefLoader::NONE),
- Manifest::EXTERNAL_PREF,
- Manifest::EXTERNAL_PREF_DOWNLOAD,
- Extension::NO_FLAGS)));
+ // Define a per-user source of external extensions.
+ // On Chrome OS, this serves as a source for OEM customization.
+ provider_list->push_back(
+ linked_ptr<ExternalProviderInterface>(
+ new ExternalProviderImpl(
+ service,
+ new ExternalPrefLoader(chrome::DIR_USER_EXTERNAL_EXTENSIONS,
+ ExternalPrefLoader::NONE),
+ Manifest::EXTERNAL_PREF,
+ Manifest::EXTERNAL_PREF_DOWNLOAD,
+ Extension::NO_FLAGS)));
#endif
+
#if defined(OS_WIN)
- provider_list->push_back(
- linked_ptr<ExternalProviderInterface>(
- new ExternalProviderImpl(
- service,
- new ExternalRegistryLoader,
- Manifest::EXTERNAL_REGISTRY,
- Manifest::INVALID_LOCATION,
- Extension::NO_FLAGS)));
+ provider_list->push_back(
+ linked_ptr<ExternalProviderInterface>(
+ new ExternalProviderImpl(
+ service,
+ new ExternalRegistryLoader,
+ Manifest::EXTERNAL_REGISTRY,
+ Manifest::INVALID_LOCATION,
+ Extension::NO_FLAGS)));
#endif
#if defined(OS_LINUX)
- provider_list->push_back(
- linked_ptr<ExternalProviderInterface>(
- new ExternalProviderImpl(
- service,
- new ExternalPrefLoader(chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS,
- ExternalPrefLoader::NONE),
- Manifest::EXTERNAL_PREF,
- Manifest::EXTERNAL_PREF_DOWNLOAD,
- bundled_extension_creation_flags)));
+ provider_list->push_back(
+ linked_ptr<ExternalProviderInterface>(
+ new ExternalProviderImpl(
+ service,
+ new ExternalPrefLoader(
+ chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS,
+ ExternalPrefLoader::NONE),
+ Manifest::EXTERNAL_PREF,
+ Manifest::EXTERNAL_PREF_DOWNLOAD,
+ bundled_extension_creation_flags)));
#endif
#if !defined(OS_CHROMEOS)
- // The default apps are installed as INTERNAL but use the external
- // extension installer codeflow.
- provider_list->push_back(
- linked_ptr<ExternalProviderInterface>(
- new default_apps::Provider(
- profile,
- service,
- new ExternalPrefLoader(chrome::DIR_DEFAULT_APPS,
- ExternalPrefLoader::NONE),
- Manifest::INTERNAL,
- Manifest::INVALID_LOCATION,
- Extension::FROM_WEBSTORE |
- Extension::WAS_INSTALLED_BY_DEFAULT)));
+ // The default apps are installed as INTERNAL but use the external
+ // extension installer codeflow.
+ provider_list->push_back(
+ linked_ptr<ExternalProviderInterface>(
+ new default_apps::Provider(
+ profile,
+ service,
+ new ExternalPrefLoader(chrome::DIR_DEFAULT_APPS,
+ ExternalPrefLoader::NONE),
+ Manifest::INTERNAL,
+ Manifest::INVALID_LOCATION,
+ Extension::FROM_WEBSTORE |
+ Extension::WAS_INSTALLED_BY_DEFAULT)));
#endif
#if defined(OS_CHROMEOS)
- policy::BrowserPolicyConnector* connector =
- g_browser_process->browser_policy_connector();
- if (is_chromeos_demo_session && connector->GetAppPackUpdater()) {
- provider_list->push_back(
- linked_ptr<ExternalProviderInterface>(
- new ExternalProviderImpl(
- service,
- connector->GetAppPackUpdater()->CreateExternalLoader(),
- Manifest::EXTERNAL_PREF,
- Manifest::INVALID_LOCATION,
- Extension::NO_FLAGS)));
- }
+ policy::BrowserPolicyConnector* connector =
+ g_browser_process->browser_policy_connector();
+ if (is_chromeos_demo_session && connector->GetAppPackUpdater()) {
+ provider_list->push_back(
+ linked_ptr<ExternalProviderInterface>(
+ new ExternalProviderImpl(
+ service,
+ connector->GetAppPackUpdater()->CreateExternalLoader(),
+ Manifest::EXTERNAL_PREF,
+ Manifest::INVALID_LOCATION,
+ Extension::NO_FLAGS)));
+ }
#endif
+ }
}
} // namespace extensions
« no previous file with comments | « no previous file | chrome/browser/managed_mode/managed_user_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698