| Index: chrome/browser/extensions/extension_service.cc
|
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
| index 443f5eefeb54ee5c2500148ead8f83282dc7362d..08e428158acf54f63a6614e74122cb3a07417e32 100644
|
| --- a/chrome/browser/extensions/extension_service.cc
|
| +++ b/chrome/browser/extensions/extension_service.cc
|
| @@ -687,6 +687,7 @@ bool ExtensionService::UninstallExtension(
|
| // Callers should not send us nonexistent extensions.
|
| CHECK(extension.get());
|
|
|
| + ManagementPolicy* by_policy = system_->management_policy();
|
| // Policy change which triggers an uninstall will always set
|
| // |external_uninstall| to true so this is the only way to uninstall
|
| // managed extensions.
|
| @@ -704,8 +705,8 @@ bool ExtensionService::UninstallExtension(
|
| (reason == extensions::UNINSTALL_REASON_SYNC &&
|
| extension->was_installed_by_custodian());
|
| if (!external_uninstall &&
|
| - !system_->management_policy()->UserMayModifySettings(
|
| - extension.get(), error)) {
|
| + (!by_policy->UserMayModifySettings(extension.get(), error) ||
|
| + by_policy->MustRemainInstalled(extension.get(), error))) {
|
| content::NotificationService::current()->Notify(
|
| extensions::NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED,
|
| content::Source<Profile>(profile_),
|
|
|