Refactor update_client to use base::OnceCallback.
For correctness, change the type of callbacks which are invoked one time
only from base::Callback to base::OnceCallback. Same for closures.
This is a mechanical change.
BUG=780524
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I29c9b2bab9e83695f0ac041a95a23545ef852a81
Reviewed-on: https://chromium-review.googlesource.com/741037
Reviewed-by: Devlin <[email protected]>
Reviewed-by: Julian Pastarmov <[email protected]>
Reviewed-by: Joshua Pawlicki <[email protected]>
Commit-Queue: Sorin Jianu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#513520}
diff --git a/components/update_client/crx_downloader.cc b/components/update_client/crx_downloader.cc
index ee80fc98..a73bfc5 100644
--- a/components/update_client/crx_downloader.cc
+++ b/components/update_client/crx_downloader.cc
@@ -82,18 +82,17 @@
return retval;
}
-void CrxDownloader::StartDownloadFromUrl(
- const GURL& url,
- const std::string& expected_hash,
- const DownloadCallback& download_callback) {
+void CrxDownloader::StartDownloadFromUrl(const GURL& url,
+ const std::string& expected_hash,
+ DownloadCallback download_callback) {
std::vector<GURL> urls;
urls.push_back(url);
- StartDownload(urls, expected_hash, download_callback);
+ StartDownload(urls, expected_hash, std::move(download_callback));
}
void CrxDownloader::StartDownload(const std::vector<GURL>& urls,
const std::string& expected_hash,
- const DownloadCallback& download_callback) {
+ DownloadCallback download_callback) {
DCHECK(thread_checker_.CalledOnValidThread());
auto error = CrxDownloaderError::NONE;
@@ -106,15 +105,15 @@
if (error != CrxDownloaderError::NONE) {
Result result;
result.error = static_cast<int>(error);
- main_task_runner()->PostTask(FROM_HERE,
- base::BindOnce(download_callback, result));
+ main_task_runner()->PostTask(
+ FROM_HERE, base::BindOnce(std::move(download_callback), result));
return;
}
urls_ = urls;
expected_hash_ = expected_hash;
current_url_ = urls_.begin();
- download_callback_ = download_callback;
+ download_callback_ = std::move(download_callback);
DoStartDownload(*current_url_);
}
@@ -157,8 +156,8 @@
if (VerifyFileHash256(result.response, expected_hash_)) {
download_metrics_.push_back(download_metrics);
- main_task_runner()->PostTask(FROM_HERE,
- base::BindOnce(download_callback_, result));
+ main_task_runner()->PostTask(
+ FROM_HERE, base::BindOnce(std::move(download_callback_), result));
return;
}
@@ -206,14 +205,15 @@
// Try downloading using the next downloader.
if (successor_ && !urls_.empty()) {
- successor_->StartDownload(urls_, expected_hash_, download_callback_);
+ successor_->StartDownload(urls_, expected_hash_,
+ std::move(download_callback_));
return;
}
// The download ends here since there is no url nor downloader to handle this
// download request further.
- main_task_runner()->PostTask(FROM_HERE,
- base::BindOnce(download_callback_, result));
+ main_task_runner()->PostTask(
+ FROM_HERE, base::BindOnce(std::move(download_callback_), result));
}
} // namespace update_client