Chromium Code Reviews| 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..1244ec228d3635dcf225e7cb7829f475cf7f73ab 100644 |
| --- a/chrome/browser/extensions/extension_disabled_ui.cc |
| +++ b/chrome/browser/extensions/extension_disabled_ui.cc |
| @@ -136,6 +136,7 @@ void ExtensionDisabledDialogDelegate::InstallUIAbort(bool user_initiated) { |
| extension_, histogram_name.c_str()); |
| // Do nothing. The extension will remain disabled. |
| + |
| Release(); |
| } |
| @@ -306,6 +307,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? |
|
Pam (message me for reviews)
2015/02/23 10:18:50
+1
Marc Treib
2015/02/23 12:07:38
I'd like to do that in a different CL, though.
|
| messages.push_back(l10n_util::GetStringFUTF16( |
| extension_->is_app() ? IDS_APP_DISABLED_ERROR_LABEL |
| : IDS_EXTENSION_DISABLED_ERROR_LABEL, |
| @@ -321,15 +323,26 @@ ExtensionDisabledGlobalError::GetBubbleViewMessages() { |
| } |
| base::string16 ExtensionDisabledGlobalError::GetBubbleViewAcceptButtonLabel() { |
| + if (service_->profile()->IsSupervised() && |
| + extension_->was_installed_by_custodian()) { |
| + // TODO(treib): Probably use a new string here once we get UX design. |
| + // 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 +351,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 +365,10 @@ void ExtensionDisabledGlobalError::BubbleViewAcceptButtonPressed( |
| void ExtensionDisabledGlobalError::BubbleViewCancelButtonPressed( |
| Browser* browser) { |
| + // This button shouldn't exist for custodian-installed extensions in a |
| + // supervised profile. |
|
Pam (message me for reviews)
2015/02/23 10:18:50
What other kind of extension in a supervised profi
Marc Treib
2015/02/23 12:07:38
Or if we decide to have an "allow everything, even
|
| + 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 |