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

Unified Diff: chrome/browser/managed_mode/managed_user_service.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 | « chrome/browser/extensions/external_provider_impl.cc ('k') | chrome/common/chrome_paths.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/managed_mode/managed_user_service.cc
diff --git a/chrome/browser/managed_mode/managed_user_service.cc b/chrome/browser/managed_mode/managed_user_service.cc
index 9403ed444a66d596c389c06ebbaa24231b45afc0..b3261fd97667532488bb18b24d943ab4acbb2b4b 100644
--- a/chrome/browser/managed_mode/managed_user_service.cc
+++ b/chrome/browser/managed_mode/managed_user_service.cc
@@ -168,6 +168,24 @@ bool ManagedUserService::UserMayLoad(const extensions::Extension* extension,
extension_service->GetInstalledExtension(extension->id()))
return true;
+ if (extension) {
+ bool was_installed_by_default = extension->was_installed_by_default();
+#ifdef OS_CHROMEOS
+ // On Chrome OS all external sources are controlled by us so it means that
+ // they are "default". Method was_installed_by_default returns false because
+ // extensions creation flags are ignored in case of default extensions with
+ // update URL(the flags aren't passed to OnExternalExtensionUpdateUrlFound).
+ // TODO(dpolukhin): remove this Chrome OS specific code as soon as creation
+ // flags are not ignored.
+ was_installed_by_default =
+ extensions::Manifest::IsExternalLocation(extension->location());
+#endif
+ if (extension->location() == extensions::Manifest::COMPONENT ||
+ was_installed_by_default) {
+ return true;
+ }
+ }
+
if (error)
*error = tmp_error;
return false;
« no previous file with comments | « chrome/browser/extensions/external_provider_impl.cc ('k') | chrome/common/chrome_paths.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698