| Index: chrome/browser/extensions/extension_context_menu_model.cc
|
| diff --git a/chrome/browser/extensions/extension_context_menu_model.cc b/chrome/browser/extensions/extension_context_menu_model.cc
|
| index 492f0289e593af770f8ea7cffb3aa117ad9a4678..281a7fe6d96474e2ea097f567ee04345e6a1712e 100644
|
| --- a/chrome/browser/extensions/extension_context_menu_model.cc
|
| +++ b/chrome/browser/extensions/extension_context_menu_model.cc
|
| @@ -306,8 +306,22 @@ void ExtensionContextMenuModel::InitMenu(const Extension* extension,
|
| if (!is_component_ || extensions::OptionsPageInfo::HasOptionsPage(extension))
|
| AddItemWithStringId(CONFIGURE, IDS_EXTENSIONS_OPTIONS_MENU_ITEM);
|
|
|
| - if (!is_component_)
|
| - AddItem(UNINSTALL, l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL));
|
| + if (!is_component_) {
|
| + extensions::ManagementPolicy* policy =
|
| + extensions::ExtensionSystem::Get(profile_)->management_policy();
|
| + bool is_required_by_policy =
|
| + !policy->UserMayModifySettings(extension, nullptr) ||
|
| + policy->MustRemainInstalled(extension, nullptr);
|
| + int message_id = is_required_by_policy ?
|
| + IDS_EXTENSIONS_INSTALLED_BY_ADMIN : IDS_EXTENSIONS_UNINSTALL;
|
| + AddItem(UNINSTALL, l10n_util::GetStringUTF16(message_id));
|
| + if (is_required_by_policy) {
|
| + int uninstall_index = GetIndexOfCommandId(UNINSTALL);
|
| + SetIcon(uninstall_index,
|
| + ui::ResourceBundle::GetSharedInstance().GetImageNamed(
|
| + IDR_CONTROLLED_SETTING_MANDATORY));
|
| + }
|
| + }
|
|
|
| // Add a toggle visibility (show/hide) if the extension icon is shown on the
|
| // toolbar.
|
|
|