Chromium Code Reviews| Index: chrome/browser/extensions/extension_service.cc |
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
| index ac49c1dfce81fa2e55807059079e5a576445332f..e16fcd08e705704600ba3843d6ff6c481f4d7c33 100644 |
| --- a/chrome/browser/extensions/extension_service.cc |
| +++ b/chrome/browser/extensions/extension_service.cc |
| @@ -544,7 +544,10 @@ bool ExtensionService::UpdateExtension(const std::string& id, |
| if (pending_extension_info) { |
| installer->set_install_source(pending_extension_info->install_source()); |
| if (pending_extension_info->install_silently()) |
| - installer->set_allow_silent_install(true); |
| + installer->set_allow_silent_install( |
| + pending_extension_info->remote_install() |
| + ? CrxInstaller::SILENTLY_DONT_GRANT |
| + : CrxInstaller::GRANT_SILENTLY); |
| creation_flags = pending_extension_info->creation_flags(); |
| if (pending_extension_info->mark_acknowledged()) |
| AcknowledgeExternalExtension(id); |
| @@ -1495,10 +1498,11 @@ void ExtensionService::AddExtension(const Extension* extension) { |
| content::Details<const Extension>(extension)); |
| // Show the extension disabled error if a permissions increase was the |
| - // only reason it was disabled. |
| - if (extension_prefs_->GetDisableReasons(extension->id()) == |
| - Extension::DISABLE_PERMISSIONS_INCREASE) { |
| - extensions::AddExtensionDisabledError(this, extension); |
| + // only reason it was disabled, or if the extensions was remotely installed. |
| + int reasons = extension_prefs_->GetDisableReasons(extension->id()); |
| + if (reasons == Extension::DISABLE_PERMISSIONS_INCREASE || |
| + reasons & Extension::DISABLE_REMOTE_INSTALL) { |
|
not at google - send to devlin
2014/05/01 18:55:21
seems odd to be doing both an == and a & operation
Marijn Kruisselbrink
2014/05/01 22:36:56
yeah... Actually a more correct check would be to
|
| + extensions::AddExtensionDisabledError(this, extension, reasons); |
| } |
| } else if (reloading) { |
| // Replace the old extension with the new version. |