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..8af4119a1b791ea9413c823ef25dfbeee0ff7e81 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 false; |
Joao da Silva
2014/09/18 12:21:23
Why? Shouldn't this be true?
binjin
2014/09/18 16:25:15
Done.
|
+ 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 |