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_;