Commit 5218b375 authored by Gabriel Marin's avatar Gabriel Marin Committed by Commit Bot

PerfProvider: Migrate from base::Bind to Bind(Once|Repeating)

base::Bind is deprecated. Converted the callback for the SessionRestore
observer to BindRepeating, while the other uses are converted to BindOnce.

BUG=714018,b:116527691
TEST=Unit tests pass

Change-Id: Ieef3f8b40f057d64265f8524b2b779ee7ce8806b
Reviewed-on: https://chromium-review.googlesource.com/c/1340605Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Commit-Queue: Gabriel Marin <gmx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609458}
parent a8c82138
......@@ -11,10 +11,10 @@
PerfOutputCall::PerfOutputCall(base::TimeDelta duration,
const std::vector<std::string>& perf_args,
const DoneCallback& callback)
DoneCallback callback)
: duration_(duration),
perf_args_(perf_args),
done_callback_(callback),
done_callback_(std::move(callback)),
weak_factory_(this) {
DCHECK(thread_checker_.CalledOnValidThread());
......@@ -37,7 +37,7 @@ PerfOutputCall::~PerfOutputCall() {}
void PerfOutputCall::OnIOComplete(base::Optional<std::string> result) {
DCHECK(thread_checker_.CalledOnValidThread());
perf_data_pipe_reader_.reset();
done_callback_.Run(result.value_or(std::string()));
std::move(done_callback_).Run(result.value_or(std::string()));
// The callback may delete us, so it's hammertime: Can't touch |this|.
}
......@@ -47,6 +47,6 @@ void PerfOutputCall::OnGetPerfOutput(bool success) {
// Signal pipe reader to shut down.
if (!success && perf_data_pipe_reader_.get()) {
perf_data_pipe_reader_.reset();
done_callback_.Run(std::string());
std::move(done_callback_).Run(std::string());
}
}
......@@ -26,11 +26,11 @@ class PerfOutputCall {
// - Output from "perf record", in PerfDataProto format, OR
// - Output from "perf stat", in PerfStatProto format, OR
// - The empty string if there was an error.
using DoneCallback = base::Callback<void(const std::string& perf_stdout)>;
using DoneCallback = base::OnceCallback<void(const std::string& perf_stdout)>;
PerfOutputCall(base::TimeDelta duration,
const std::vector<std::string>& perf_args,
const DoneCallback& callback);
DoneCallback callback);
~PerfOutputCall();
private:
......
......@@ -369,9 +369,8 @@ void PerfProvider::Init() {
// Register as an observer of session restore.
on_session_restored_callback_subscription_ =
SessionRestore::RegisterOnSessionRestoredCallback(
base::Bind(&PerfProvider::OnSessionRestoreDone,
weak_factory_.GetWeakPtr()));
SessionRestore::RegisterOnSessionRestoredCallback(base::BindRepeating(
&PerfProvider::OnSessionRestoreDone, weak_factory_.GetWeakPtr()));
// Check the login state. At the time of writing, this class is instantiated
// before login. A subsequent login would activate the profiling. However,
......@@ -618,12 +617,10 @@ void PerfProvider::SuspendDone(const base::TimeDelta& sleep_duration) {
// Randomly pick a delay before doing the collection.
base::TimeDelta collection_delay = RandomTimeDelta(
resume_params.max_collection_delay());
timer_.Start(FROM_HERE,
collection_delay,
base::Bind(&PerfProvider::CollectPerfDataAfterResume,
weak_factory_.GetWeakPtr(),
sleep_duration,
collection_delay));
timer_.Start(FROM_HERE, collection_delay,
base::BindOnce(&PerfProvider::CollectPerfDataAfterResume,
weak_factory_.GetWeakPtr(), sleep_duration,
collection_delay));
}
void PerfProvider::OnSessionRestoreDone(int num_tabs_restored) {
......@@ -658,13 +655,10 @@ void PerfProvider::OnSessionRestoreDone(int num_tabs_restored) {
// Randomly pick a delay before doing the collection.
base::TimeDelta collection_delay = RandomTimeDelta(
restore_params.max_collection_delay());
timer_.Start(
FROM_HERE,
collection_delay,
base::Bind(&PerfProvider::CollectPerfDataAfterSessionRestore,
weak_factory_.GetWeakPtr(),
collection_delay,
num_tabs_restored));
timer_.Start(FROM_HERE, collection_delay,
base::BindOnce(&PerfProvider::CollectPerfDataAfterSessionRestore,
weak_factory_.GetWeakPtr(), collection_delay,
num_tabs_restored));
}
void PerfProvider::OnUserLoggedIn() {
......@@ -754,9 +748,10 @@ void PerfProvider::CollectIfNecessary(
perf_output_call_.reset(new PerfOutputCall(
collection_params_.collection_duration(), command,
base::Bind(&PerfProvider::ParseOutputProtoIfValid,
weak_factory_.GetWeakPtr(), base::Passed(&incognito_observer),
base::Passed(&sampled_profile), subcommand)));
base::BindOnce(&PerfProvider::ParseOutputProtoIfValid,
weak_factory_.GetWeakPtr(),
base::Passed(&incognito_observer),
base::Passed(&sampled_profile), subcommand)));
}
void PerfProvider::DoPeriodicCollection() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment