| Index: chrome/browser/extensions/extension_install_checker.cc
|
| diff --git a/chrome/browser/extensions/extension_install_checker.cc b/chrome/browser/extensions/extension_install_checker.cc
|
| deleted file mode 100644
|
| index d529647e853fd48ce8f745a60b534e192a23e165..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/extension_install_checker.cc
|
| +++ /dev/null
|
| @@ -1,164 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/extensions/extension_install_checker.h"
|
| -
|
| -#include "base/bind_helpers.h"
|
| -#include "base/callback_helpers.h"
|
| -#include "base/memory/ptr_util.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "chrome/browser/extensions/blacklist.h"
|
| -#include "chrome/browser/extensions/blacklist_check.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "extensions/browser/extension_system.h"
|
| -#include "extensions/browser/policy_check.h"
|
| -#include "extensions/browser/requirements_checker.h"
|
| -
|
| -namespace extensions {
|
| -
|
| -ExtensionInstallChecker::ExtensionInstallChecker(
|
| - Profile* profile,
|
| - scoped_refptr<const Extension> extension,
|
| - int enabled_checks,
|
| - bool fail_fast)
|
| - : profile_(profile),
|
| - extension_(extension),
|
| - enabled_checks_(enabled_checks),
|
| - running_checks_(0),
|
| - fail_fast_(fail_fast),
|
| - weak_ptr_factory_(this) {}
|
| -
|
| -ExtensionInstallChecker::~ExtensionInstallChecker() {
|
| -}
|
| -
|
| -void ExtensionInstallChecker::Start(const Callback& callback) {
|
| - // Profile is null in tests.
|
| - if (profile_) {
|
| - DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| - // TODO(michaelpg): change NOTREACHED to [D]CHECK here and below.
|
| - if (!extension_.get()) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| - }
|
| -
|
| - if (is_running() || !enabled_checks_ || callback.is_null()) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| -
|
| - running_checks_ = enabled_checks_;
|
| - callback_ = callback;
|
| -
|
| - // Execute the management policy check first as it is synchronous.
|
| - if (enabled_checks_ & CHECK_MANAGEMENT_POLICY) {
|
| - CheckManagementPolicy();
|
| - if (!is_running())
|
| - return;
|
| - }
|
| -
|
| - if (enabled_checks_ & CHECK_REQUIREMENTS) {
|
| - CheckRequirements();
|
| - if (!is_running())
|
| - return;
|
| - }
|
| -
|
| - if (enabled_checks_ & CHECK_BLACKLIST)
|
| - CheckBlacklistState();
|
| -}
|
| -
|
| -void ExtensionInstallChecker::CheckManagementPolicy() {
|
| - // In tests, this check may already be stubbed.
|
| - if (!policy_check_)
|
| - policy_check_ = base::MakeUnique<PolicyCheck>(profile_, extension_);
|
| - policy_check_->Start(
|
| - base::BindOnce(&ExtensionInstallChecker::OnManagementPolicyCheckDone,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ExtensionInstallChecker::OnManagementPolicyCheckDone(
|
| - PreloadCheck::Errors errors) {
|
| - if (!errors.empty()) {
|
| - DCHECK_EQ(1u, errors.count(PreloadCheck::DISALLOWED_BY_POLICY));
|
| - policy_error_ = policy_check_->GetErrorMessage();
|
| - }
|
| -
|
| - running_checks_ &= ~CHECK_MANAGEMENT_POLICY;
|
| - MaybeInvokeCallback();
|
| -}
|
| -
|
| -void ExtensionInstallChecker::CheckRequirements() {
|
| - // In tests, this check may already be stubbed.
|
| - if (!requirements_check_)
|
| - requirements_check_ = base::MakeUnique<RequirementsChecker>(extension_);
|
| - requirements_check_->Start(
|
| - base::BindOnce(&ExtensionInstallChecker::OnRequirementsCheckDone,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ExtensionInstallChecker::OnRequirementsCheckDone(
|
| - PreloadCheck::Errors errors) {
|
| - DCHECK(is_running());
|
| -
|
| - requirements_error_message_ = requirements_check_->GetErrorMessage();
|
| -
|
| - running_checks_ &= ~CHECK_REQUIREMENTS;
|
| - MaybeInvokeCallback();
|
| -}
|
| -
|
| -void ExtensionInstallChecker::CheckBlacklistState() {
|
| - // In tests, this check may already be stubbed.
|
| - if (!blacklist_check_) {
|
| - blacklist_check_ =
|
| - base::MakeUnique<BlacklistCheck>(Blacklist::Get(profile_), extension_);
|
| - }
|
| - blacklist_check_->Start(
|
| - base::BindOnce(&ExtensionInstallChecker::OnBlacklistStateCheckDone,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ExtensionInstallChecker::OnBlacklistStateCheckDone(
|
| - PreloadCheck::Errors errors) {
|
| - DCHECK(is_running());
|
| -
|
| - if (errors.empty()) {
|
| - blacklist_error_ = PreloadCheck::NONE;
|
| - } else {
|
| - DCHECK_EQ(1u, errors.size());
|
| - blacklist_error_ = *errors.begin();
|
| - }
|
| -
|
| - running_checks_ &= ~CHECK_BLACKLIST;
|
| - MaybeInvokeCallback();
|
| -}
|
| -
|
| -void ExtensionInstallChecker::MaybeInvokeCallback() {
|
| - if (callback_.is_null())
|
| - return;
|
| -
|
| - // Set bits for failed checks.
|
| - int failed_mask = 0;
|
| - if (blacklist_error_ == PreloadCheck::BLACKLISTED_ID)
|
| - failed_mask |= CHECK_BLACKLIST;
|
| - if (!requirements_error_message_.empty())
|
| - failed_mask |= CHECK_REQUIREMENTS;
|
| - if (!policy_error_.empty())
|
| - failed_mask |= CHECK_MANAGEMENT_POLICY;
|
| -
|
| - // Invoke callback if all checks are complete or there was at least one
|
| - // failure and |fail_fast_| is true.
|
| - if (!is_running() || (failed_mask && fail_fast_)) {
|
| - running_checks_ = 0;
|
| -
|
| - // If we are failing fast, discard any pending results.
|
| - blacklist_check_.reset();
|
| - policy_check_.reset();
|
| - requirements_check_.reset();
|
| - weak_ptr_factory_.InvalidateWeakPtrs();
|
| - base::ResetAndReturn(&callback_).Run(failed_mask);
|
| - }
|
| -}
|
| -
|
| -} // namespace extensions
|
|
|