| 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) {
|
| + extensions::AddExtensionDisabledError(this, extension, reasons);
|
| }
|
| } else if (reloading) {
|
| // Replace the old extension with the new version.
|
|
|