| Index: chrome/browser/extensions/unpacked_installer.cc
|
| diff --git a/chrome/browser/extensions/unpacked_installer.cc b/chrome/browser/extensions/unpacked_installer.cc
|
| index 0d93fcc26aac63d036ee7d61efc674f41ebf79be..6d7bda46c0975c58707a5c2168b573d321077208 100644
|
| --- a/chrome/browser/extensions/unpacked_installer.cc
|
| +++ b/chrome/browser/extensions/unpacked_installer.cc
|
| @@ -13,7 +13,6 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/threading/thread_restrictions.h"
|
| #include "chrome/browser/extensions/extension_error_reporter.h"
|
| -#include "chrome/browser/extensions/extension_install_checker.h"
|
| #include "chrome/browser/extensions/extension_install_prompt.h"
|
| #include "chrome/browser/extensions/extension_management.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| @@ -27,6 +26,9 @@
|
| #include "extensions/browser/extension_registry.h"
|
| #include "extensions/browser/install/extension_install_ui.h"
|
| #include "extensions/browser/install_flag.h"
|
| +#include "extensions/browser/policy_check.h"
|
| +#include "extensions/browser/preload_check_group.h"
|
| +#include "extensions/browser/requirements_checker.h"
|
| #include "extensions/common/extension.h"
|
| #include "extensions/common/extension_l10n_util.h"
|
| #include "extensions/common/file_util.h"
|
| @@ -243,28 +245,34 @@ void UnpackedInstaller::StartInstallChecks() {
|
| }
|
| }
|
|
|
| - install_checker_ = base::MakeUnique<ExtensionInstallChecker>(
|
| - profile_, extension_,
|
| - ExtensionInstallChecker::CHECK_REQUIREMENTS |
|
| - ExtensionInstallChecker::CHECK_MANAGEMENT_POLICY,
|
| - true /* fail fast */);
|
| - install_checker_->Start(
|
| - base::Bind(&UnpackedInstaller::OnInstallChecksComplete, this));
|
| + policy_check_ = base::MakeUnique<PolicyCheck>(profile_, extension_);
|
| + requirements_check_ = base::MakeUnique<RequirementsChecker>(extension_);
|
| +
|
| + check_group_ = base::MakeUnique<PreloadCheckGroup>();
|
| + check_group_->set_stop_on_first_error(true);
|
| +
|
| + check_group_->AddCheck(policy_check_.get());
|
| + check_group_->AddCheck(requirements_check_.get());
|
| + check_group_->Start(
|
| + base::BindOnce(&UnpackedInstaller::OnInstallChecksComplete, this));
|
| }
|
|
|
| -void UnpackedInstaller::OnInstallChecksComplete(int failed_checks) {
|
| +void UnpackedInstaller::OnInstallChecksComplete(PreloadCheck::Errors errors) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| - base::string16 error_message = install_checker_->policy_error();
|
| - if (error_message.empty())
|
| - error_message = install_checker_->requirements_error_message();
|
| -
|
| - if (!error_message.empty()) {
|
| - ReportExtensionLoadError(base::UTF16ToUTF8(error_message));
|
| + if (errors.empty()) {
|
| + InstallExtension();
|
| return;
|
| }
|
|
|
| - InstallExtension();
|
| + base::string16 error_message;
|
| + if (errors.count(PreloadCheck::DISALLOWED_BY_POLICY))
|
| + error_message = policy_check_->GetErrorMessage();
|
| + else
|
| + error_message = requirements_check_->GetErrorMessage();
|
| +
|
| + DCHECK(!error_message.empty());
|
| + ReportExtensionLoadError(base::UTF16ToUTF8(error_message));
|
| }
|
|
|
| int UnpackedInstaller::GetFlags() {
|
|
|