Chromium Code Reviews| Index: chrome/browser/extensions/api/management/management_api.cc |
| diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc |
| index 07c3455d542ce56fda1635274e06d7b5cca375d4..909b943b797d128a7018aebfd7a575e26739b8f3 100644 |
| --- a/chrome/browser/extensions/api/management/management_api.cc |
| +++ b/chrome/browser/extensions/api/management/management_api.cc |
| @@ -433,13 +433,17 @@ bool SetEnabledFunction::RunImpl() { |
| extension_id_ = params->id; |
| - const Extension* extension = service()->GetExtensionById(extension_id_, true); |
| + const Extension* extension = service()->GetInstalledExtension(extension_id_); |
| if (!extension) { |
| error_ = ExtensionErrorUtils::FormatErrorMessage( |
| keys::kNoExtensionError, extension_id_); |
| return false; |
| } |
| + // The extension may have been unloaded due to a crash. |
| + if (service()->GetTerminatedExtension(extension_id_)) |
| + service()->ReloadExtension(extension_id_); |
|
asargent_no_longer_on_chrome
2012/08/13 19:10:34
nit: I think we should only call ReloadExtension i
|
| + |
| const extensions::ManagementPolicy* policy = extensions::ExtensionSystem::Get( |
| profile())->management_policy(); |
| if (!policy->UserMayModifySettings(extension, NULL)) { |