Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3916)

Unified Diff: chrome/browser/extensions/extension_install_checker.cc

Issue 2751013002: Simplify ExtensionInstallChecker into a single-use class (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
index 313225df59060d09c967dd4cf239bc78eb43db8f..877f1d48d5319960ea40a74ea184171391054d2d 100644
--- a/chrome/browser/extensions/extension_install_checker.cc
+++ b/chrome/browser/extensions/extension_install_checker.cc
@@ -14,15 +14,17 @@
namespace extensions {
-ExtensionInstallChecker::ExtensionInstallChecker(Profile* profile)
+ExtensionInstallChecker::ExtensionInstallChecker(
+ Profile* profile,
+ scoped_refptr<const Extension> extension)
: profile_(profile),
+ extension_(extension),
blacklist_state_(NOT_BLACKLISTED),
policy_allows_load_(true),
- current_sequence_number_(0),
+ enabled_checks_(0),
running_checks_(0),
fail_fast_(false),
- weak_ptr_factory_(this) {
-}
+ weak_ptr_factory_(this) {}
ExtensionInstallChecker::~ExtensionInstallChecker() {
}
@@ -30,6 +32,9 @@ ExtensionInstallChecker::~ExtensionInstallChecker() {
void ExtensionInstallChecker::Start(int enabled_checks,
bool fail_fast,
const Callback& callback) {
+ DCHECK_EQ(enabled_checks_, 0)
+ << "ExtensionInstallChecker::Start() can be called at most once";
+
// Profile is null in tests.
if (profile_) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -44,10 +49,10 @@ void ExtensionInstallChecker::Start(int enabled_checks,
return;
}
+ enabled_checks_ = enabled_checks;
Devlin 2017/03/16 19:29:40 With this class becoming single use, we can move a
michaelpg 2017/03/17 04:25:23 Done.
running_checks_ = enabled_checks;
fail_fast_ = fail_fast;
callback_ = callback;
- ResetResults();
// Execute the management policy check first as it is synchronous.
if (enabled_checks & CHECK_MANAGEMENT_POLICY) {
@@ -92,17 +97,14 @@ void ExtensionInstallChecker::CheckRequirements() {
if (!requirements_checker_.get())
requirements_checker_.reset(new ChromeRequirementsChecker());
requirements_checker_->Check(
- extension_,
- base::Bind(&ExtensionInstallChecker::OnRequirementsCheckDone,
- weak_ptr_factory_.GetWeakPtr(),
- current_sequence_number_));
+ extension_, base::Bind(&ExtensionInstallChecker::OnRequirementsCheckDone,
+ weak_ptr_factory_.GetWeakPtr()));
}
void ExtensionInstallChecker::OnRequirementsCheckDone(
- int sequence_number,
const std::vector<std::string>& errors) {
// Some pending results may arrive after fail fast.
- if (sequence_number != current_sequence_number_)
+ if (!is_running())
return;
requirement_errors_ = errors;
@@ -118,14 +120,12 @@ void ExtensionInstallChecker::CheckBlacklistState() {
blacklist->IsBlacklisted(
extension_->id(),
base::Bind(&ExtensionInstallChecker::OnBlacklistStateCheckDone,
- weak_ptr_factory_.GetWeakPtr(),
- current_sequence_number_));
+ weak_ptr_factory_.GetWeakPtr()));
}
-void ExtensionInstallChecker::OnBlacklistStateCheckDone(int sequence_number,
- BlacklistState state) {
+void ExtensionInstallChecker::OnBlacklistStateCheckDone(BlacklistState state) {
// Some pending results may arrive after fail fast.
- if (sequence_number != current_sequence_number_)
+ if (!is_running())
return;
blacklist_state_ = state;
@@ -134,13 +134,6 @@ void ExtensionInstallChecker::OnBlacklistStateCheckDone(int sequence_number,
MaybeInvokeCallback();
}
-void ExtensionInstallChecker::ResetResults() {
- requirement_errors_.clear();
- blacklist_state_ = NOT_BLACKLISTED;
- policy_allows_load_ = true;
- policy_error_.clear();
-}
-
void ExtensionInstallChecker::MaybeInvokeCallback() {
if (callback_.is_null())
return;
@@ -160,7 +153,6 @@ void ExtensionInstallChecker::MaybeInvokeCallback() {
// If we are failing fast, discard any pending results.
weak_ptr_factory_.InvalidateWeakPtrs();
running_checks_ = 0;
- ++current_sequence_number_;
Callback callback_copy = callback_;
callback_.Reset();

Powered by Google App Engine
This is Rietveld 408576698