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

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

Issue 925563002: Supervised users: Slightly relax restrictions around extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test_ext_install_disable
Patch Set: review (add comments) Created 5 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/resources/extensions/extension_list.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_disabled_ui.cc
diff --git a/chrome/browser/extensions/extension_disabled_ui.cc b/chrome/browser/extensions/extension_disabled_ui.cc
index adba0e8afb8f16c80a2e10dd3bbbaa1e774c8e0f..f8524acc093f37171aaadd474e6d5d628b4679be 100644
--- a/chrome/browser/extensions/extension_disabled_ui.cc
+++ b/chrome/browser/extensions/extension_disabled_ui.cc
@@ -306,6 +306,7 @@ ExtensionDisabledGlobalError::GetBubbleViewMessages() {
messages.push_back(
l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO));
} else {
+ // TODO(treib): Add an extra message for supervised users?
messages.push_back(l10n_util::GetStringFUTF16(
extension_->is_app() ? IDS_APP_DISABLED_ERROR_LABEL
: IDS_EXTENSION_DISABLED_ERROR_LABEL,
@@ -321,15 +322,26 @@ ExtensionDisabledGlobalError::GetBubbleViewMessages() {
}
base::string16 ExtensionDisabledGlobalError::GetBubbleViewAcceptButtonLabel() {
+ if (service_->profile()->IsSupervised() &&
+ extension_->was_installed_by_custodian()) {
benwells 2015/02/24 07:33:47 This logic is repeated a few times. You should put
Marc Treib 2015/02/24 10:33:39 The "well-named" is the hard part ;) Done (I hope)
+ // TODO(treib): Probably use a new string here once we get UX design.
benwells 2015/02/24 07:33:47 These TODOs are a bit concerning. If this doesn't
Marc Treib 2015/02/24 10:33:39 There's currently no way for a user to trigger thi
+ // For now, just re-use an existing string that says "OK".
+ return l10n_util::GetStringUTF16(IDS_EXTENSION_ALERT_ITEM_OK);
+ }
if (is_remote_install_) {
return l10n_util::GetStringUTF16(
IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON);
- } else {
- return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON);
}
+ return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON);
}
base::string16 ExtensionDisabledGlobalError::GetBubbleViewCancelButtonLabel() {
+ // For custodian-installed extensions, supervised users only get a single
+ // "acknowledge" button.
+ if (service_->profile()->IsSupervised() &&
+ extension_->was_installed_by_custodian()) {
+ return base::string16();
+ }
return l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL);
}
@@ -338,6 +350,12 @@ void ExtensionDisabledGlobalError::OnBubbleViewDidClose(Browser* browser) {
void ExtensionDisabledGlobalError::BubbleViewAcceptButtonPressed(
Browser* browser) {
+ // Supervised users can't re-enable custodian-installed extensions, just
+ // acknowledge that they've been disabled.
+ if (service_->profile()->IsSupervised() &&
+ extension_->was_installed_by_custodian()) {
+ return;
+ }
// Delay extension reenabling so this bubble closes properly.
base::MessageLoop::current()->PostTask(FROM_HERE,
base::Bind(&ExtensionService::GrantPermissionsAndEnableExtension,
@@ -346,6 +364,10 @@ void ExtensionDisabledGlobalError::BubbleViewAcceptButtonPressed(
void ExtensionDisabledGlobalError::BubbleViewCancelButtonPressed(
Browser* browser) {
+ // This button shouldn't exist for custodian-installed extensions in a
+ // supervised profile.
+ DCHECK(!service_->profile()->IsSupervised() ||
+ !extension_->was_installed_by_custodian());
uninstall_dialog_.reset(extensions::ExtensionUninstallDialog::Create(
service_->profile(), browser->window()->GetNativeWindow(), this));
// Delay showing the uninstall dialog, so that this function returns
« no previous file with comments | « no previous file | chrome/browser/resources/extensions/extension_list.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698