| Index: chrome/browser/extensions/crx_installer.cc
|
| diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc
|
| index f419eab38665ea39cbda5627996314b25a058d76..5f1232363e3b4c6097203a53c70ff51519a33c79 100644
|
| --- a/chrome/browser/extensions/crx_installer.cc
|
| +++ b/chrome/browser/extensions/crx_installer.cc
|
| @@ -105,10 +105,9 @@ scoped_refptr<CrxInstaller> CrxInstaller::Create(
|
| return new CrxInstaller(service->AsWeakPtr(), client.Pass(), approval);
|
| }
|
|
|
| -CrxInstaller::CrxInstaller(
|
| - base::WeakPtr<ExtensionService> service_weak,
|
| - scoped_ptr<ExtensionInstallPrompt> client,
|
| - const WebstoreInstaller::Approval* approval)
|
| +CrxInstaller::CrxInstaller(base::WeakPtr<ExtensionService> service_weak,
|
| + scoped_ptr<ExtensionInstallPrompt> client,
|
| + const WebstoreInstaller::Approval* approval)
|
| : install_directory_(service_weak->install_directory()),
|
| install_source_(Manifest::INTERNAL),
|
| approved_(false),
|
| @@ -122,7 +121,7 @@ CrxInstaller::CrxInstaller(
|
| // See header file comment on |client_| for why we use a raw pointer here.
|
| client_(client.release()),
|
| apps_require_extension_mime_type_(false),
|
| - allow_silent_install_(false),
|
| + allow_silent_install_(GRANT_AFTER_PROMPT),
|
| install_cause_(extension_misc::INSTALL_CAUSE_UNSET),
|
| creation_flags_(Extension::NO_FLAGS),
|
| off_store_install_allow_reason_(OffStoreInstallDisallowed),
|
| @@ -538,7 +537,7 @@ void CrxInstaller::OnBlacklistChecked(
|
|
|
| if ((blacklist_state_ == extensions::BLACKLISTED_MALWARE ||
|
| blacklist_state_ == extensions::BLACKLISTED_UNKNOWN) &&
|
| - !allow_silent_install_) {
|
| + allow_silent_install_ != GRANT_AFTER_PROMPT) {
|
| // User tried to install a blacklisted extension. Show an error and
|
| // refuse to install it.
|
| ReportFailureFromUIThread(extensions::CrxInstallerError(
|
| @@ -608,8 +607,7 @@ void CrxInstaller::ConfirmInstall() {
|
| current_version_ = ExtensionPrefs::Get(service->profile())
|
| ->GetVersionString(extension()->id());
|
|
|
| - if (client_ &&
|
| - (!allow_silent_install_ || !approved_) &&
|
| + if (client_ && (allow_silent_install_ == GRANT_AFTER_PROMPT || !approved_) &&
|
| !update_from_settings_page_) {
|
| AddRef(); // Balanced in InstallUIProceed() and InstallUIAbort().
|
| client_->ConfirmInstall(this, extension(), show_dialog_callback_);
|
| @@ -795,7 +793,7 @@ void CrxInstaller::ReportSuccessFromUIThread() {
|
| // We update the extension's granted permissions if the user already
|
| // approved the install (client_ is non NULL), or we are allowed to install
|
| // this silently.
|
| - if (client_ || allow_silent_install_) {
|
| + if (client_ || allow_silent_install_ == GRANT_SILENTLY) {
|
| PermissionsUpdater perms_updater(profile());
|
| perms_updater.GrantActivePermissions(extension());
|
| }
|
|
|