| Index: chrome/browser/extensions/standard_management_policy_provider.cc
|
| diff --git a/chrome/browser/extensions/standard_management_policy_provider.cc b/chrome/browser/extensions/standard_management_policy_provider.cc
|
| index f2824064067202e033b9105c9d4e03c45bc816f3..70b50a52fa5b06670cf91e9fd770606123b8142e 100644
|
| --- a/chrome/browser/extensions/standard_management_policy_provider.cc
|
| +++ b/chrome/browser/extensions/standard_management_policy_provider.cc
|
| @@ -141,4 +141,26 @@ bool StandardManagementPolicyProvider::MustRemainEnabled(
|
| ExternalComponentLoader::IsModifiable(extension));
|
| }
|
|
|
| +bool StandardManagementPolicyProvider::MustRemainInstalled(
|
| + const Extension* extension,
|
| + base::string16* error) const {
|
| + if (!UserMayModifySettings(extension, error))
|
| + return true;
|
| + ExtensionManagement::InstallationMode mode =
|
| + settings_->ReadById(extension->id()).installation_mode;
|
| + // Disallowing removing of recommended extension, to avoid re-install it
|
| + // again while policy is reload. But disabling of recommended extension is
|
| + // allowed.
|
| + if (mode == ExtensionManagement::INSTALLATION_FORCED ||
|
| + mode == ExtensionManagement::INSTALLATION_RECOMMENDED) {
|
| + if (error) {
|
| + *error = l10n_util::GetStringFUTF16(
|
| + IDS_EXTENSION_CANT_UNINSTALL_POLICY_REQUIRED,
|
| + base::UTF8ToUTF16(extension->name()));
|
| + }
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| } // namespace extensions
|
|
|