PreloadCheck::ResultCallback: Avoid container copy in callback.
Bug: None
Change-Id: I7c510e133a6c580129030e3dd500c35aa0ee5767
Reviewed-on: https://chromium-review.googlesource.com/709934
Reviewed-by: Michael Giuffrida <[email protected]>
Commit-Queue: Istiaque Ahmed <[email protected]>
Cr-Commit-Position: refs/heads/master@{#507870}
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc
index 2e4326d..d67f6b1 100644
--- a/extensions/browser/api/management/management_api.cc
+++ b/extensions/browser/api/management/management_api.cc
@@ -484,7 +484,7 @@
}
void ManagementSetEnabledFunction::OnRequirementsChecked(
- PreloadCheck::Errors errors) {
+ const PreloadCheck::Errors& errors) {
if (errors.empty()) {
ManagementAPI::GetFactoryInstance()->Get(browser_context())->GetDelegate()->
EnableExtension(browser_context(), extension_id_);
diff --git a/extensions/browser/api/management/management_api.h b/extensions/browser/api/management/management_api.h
index 0bbef529..8ce66b1 100644
--- a/extensions/browser/api/management/management_api.h
+++ b/extensions/browser/api/management/management_api.h
@@ -113,7 +113,7 @@
private:
void OnInstallPromptDone(bool did_accept);
- void OnRequirementsChecked(PreloadCheck::Errors errors);
+ void OnRequirementsChecked(const PreloadCheck::Errors& errors);
std::string extension_id_;
diff --git a/extensions/browser/preload_check.h b/extensions/browser/preload_check.h
index d3445ff..7ddf4a1 100644
--- a/extensions/browser/preload_check.h
+++ b/extensions/browser/preload_check.h
@@ -33,7 +33,7 @@
};
using Errors = std::set<Error>;
- using ResultCallback = base::OnceCallback<void(Errors)>;
+ using ResultCallback = base::OnceCallback<void(const Errors&)>;
explicit PreloadCheck(scoped_refptr<const Extension> extension);
virtual ~PreloadCheck();
diff --git a/extensions/browser/preload_check_group.cc b/extensions/browser/preload_check_group.cc
index 86b5742..12a327f 100644
--- a/extensions/browser/preload_check_group.cc
+++ b/extensions/browser/preload_check_group.cc
@@ -36,7 +36,7 @@
}
}
-void PreloadCheckGroup::OnCheckComplete(Errors errors) {
+void PreloadCheckGroup::OnCheckComplete(const Errors& errors) {
DCHECK(thread_checker_.CalledOnValidThread());
errors_.insert(errors.begin(), errors.end());
running_checks_--;
@@ -53,8 +53,8 @@
weak_ptr_factory_.InvalidateWeakPtrs();
running_checks_ = 0;
- DCHECK(!callback_.is_null());
- base::ResetAndReturn(&callback_).Run(errors_);
+ DCHECK(callback_);
+ std::move(callback_).Run(errors_);
}
} // namespace extensions
diff --git a/extensions/browser/preload_check_group.h b/extensions/browser/preload_check_group.h
index 574f78b..92f48c38 100644
--- a/extensions/browser/preload_check_group.h
+++ b/extensions/browser/preload_check_group.h
@@ -32,7 +32,7 @@
private:
// Saves any errors and may invoke the callback.
- virtual void OnCheckComplete(Errors errors);
+ virtual void OnCheckComplete(const Errors& errors);
// Invokes the callback if the checks are considered finished.
void MaybeInvokeCallback();
diff --git a/extensions/browser/preload_check_test_util.cc b/extensions/browser/preload_check_test_util.cc
index dd4cb22..8c38082 100644
--- a/extensions/browser/preload_check_test_util.cc
+++ b/extensions/browser/preload_check_test_util.cc
@@ -47,7 +47,7 @@
base::Unretained(this));
}
-void PreloadCheckRunner::OnCheckComplete(PreloadCheck::Errors errors) {
+void PreloadCheckRunner::OnCheckComplete(const PreloadCheck::Errors& errors) {
ASSERT_FALSE(called_);
called_ = true;
errors_ = errors;
diff --git a/extensions/browser/preload_check_test_util.h b/extensions/browser/preload_check_test_util.h
index d849ef77..8feff2a 100644
--- a/extensions/browser/preload_check_test_util.h
+++ b/extensions/browser/preload_check_test_util.h
@@ -43,7 +43,7 @@
bool called() const { return called_; }
private:
- void OnCheckComplete(PreloadCheck::Errors errors);
+ void OnCheckComplete(const PreloadCheck::Errors& errors);
PreloadCheck::Errors errors_;
bool called_;