Commit b9350ee9 authored by Mark Pilgrim's avatar Mark Pilgrim Committed by Commit Bot

Migrate startup_complete_callback to OnceCallback

Bug: 714018
Change-Id: I9ecc53ebb303b1c08ca4f21f9b948fdbfa02598c
Reviewed-on: https://chromium-review.googlesource.com/1104387Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Commit-Queue: Mark Pilgrim <pilgrim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568198}
parent 5cc93793
......@@ -834,10 +834,11 @@ void BrowserMainLoop::CreateStartupTasks() {
DCHECK(!startup_task_runner_);
#if defined(OS_ANDROID)
startup_task_runner_ = std::make_unique<StartupTaskRunner>(
base::Bind(&BrowserStartupComplete), base::ThreadTaskRunnerHandle::Get());
base::BindOnce(&BrowserStartupComplete),
base::ThreadTaskRunnerHandle::Get());
#else
startup_task_runner_ = std::make_unique<StartupTaskRunner>(
base::Callback<void(int)>(), base::ThreadTaskRunnerHandle::Get());
base::OnceCallback<void(int)>(), base::ThreadTaskRunnerHandle::Get());
#endif
StartupTask pre_create_threads =
base::Bind(&BrowserMainLoop::PreCreateThreads, base::Unretained(this));
......
......@@ -10,9 +10,10 @@
namespace content {
StartupTaskRunner::StartupTaskRunner(
base::Callback<void(int)> const startup_complete_callback,
base::OnceCallback<void(int)> startup_complete_callback,
scoped_refptr<base::SingleThreadTaskRunner> proxy)
: startup_complete_callback_(startup_complete_callback), proxy_(proxy) {}
: startup_complete_callback_(std::move(startup_complete_callback)),
proxy_(proxy) {}
StartupTaskRunner::~StartupTaskRunner() {}
......@@ -25,9 +26,7 @@ void StartupTaskRunner::StartRunningTasksAsync() {
int result = 0;
if (task_list_.empty()) {
if (!startup_complete_callback_.is_null()) {
startup_complete_callback_.Run(result);
// Clear the callback to prevent it being called a second time
startup_complete_callback_.Reset();
std::move(startup_complete_callback_).Run(result);
}
} else {
const base::Closure next_task =
......@@ -46,9 +45,7 @@ void StartupTaskRunner::RunAllTasksNow() {
}
task_list_.clear();
if (!startup_complete_callback_.is_null()) {
startup_complete_callback_.Run(result);
// Clear the callback to prevent it being called a second time
startup_complete_callback_.Reset();
std::move(startup_complete_callback_).Run(result);
}
}
......@@ -67,9 +64,7 @@ void StartupTaskRunner::WrappedTask() {
}
if (task_list_.empty()) {
if (!startup_complete_callback_.is_null()) {
startup_complete_callback_.Run(result);
// Clear the callback to prevent it being called a second time
startup_complete_callback_.Reset();
std::move(startup_complete_callback_).Run(result);
}
} else {
const base::Closure next_task =
......
......@@ -37,7 +37,7 @@ class CONTENT_EXPORT StartupTaskRunner {
public:
// Constructor: Note that |startup_complete_callback| is optional. If it is
// not null it will be called once all the startup tasks have run.
StartupTaskRunner(base::Callback<void(int)> startup_complete_callback,
StartupTaskRunner(base::OnceCallback<void(int)> startup_complete_callback,
scoped_refptr<base::SingleThreadTaskRunner> proxy);
~StartupTaskRunner();
......@@ -57,7 +57,7 @@ class CONTENT_EXPORT StartupTaskRunner {
std::list<StartupTask> task_list_;
void WrappedTask();
base::Callback<void(int)> startup_complete_callback_;
base::OnceCallback<void(int)> startup_complete_callback_;
scoped_refptr<base::SingleThreadTaskRunner> proxy_;
DISALLOW_COPY_AND_ASSIGN(StartupTaskRunner);
......
......@@ -116,7 +116,7 @@ TEST_F(StartupTaskRunnerTest, SynchronousExecution) {
EXPECT_CALL(mock_runner, PostDelayedTask(_, _)).Times(0);
EXPECT_CALL(mock_runner, PostNonNestableDelayedTask(_, _)).Times(0);
StartupTaskRunner runner(base::Bind(&Observer), proxy);
StartupTaskRunner runner(base::BindOnce(&Observer), proxy);
StartupTask task1 =
base::Bind(&StartupTaskRunnerTest::Task1, base::Unretained(this));
......@@ -154,7 +154,7 @@ TEST_F(StartupTaskRunnerTest, NullObserver) {
EXPECT_CALL(mock_runner, PostDelayedTask(_, _)).Times(0);
EXPECT_CALL(mock_runner, PostNonNestableDelayedTask(_, _)).Times(0);
StartupTaskRunner runner(base::Callback<void(int)>(), proxy);
StartupTaskRunner runner(base::OnceCallback<void(int)>(), proxy);
StartupTask task1 =
base::Bind(&StartupTaskRunnerTest::Task1, base::Unretained(this));
......@@ -189,7 +189,7 @@ TEST_F(StartupTaskRunnerTest, SynchronousExecutionFailedTask) {
EXPECT_CALL(mock_runner, PostDelayedTask(_, _)).Times(0);
EXPECT_CALL(mock_runner, PostNonNestableDelayedTask(_, _)).Times(0);
StartupTaskRunner runner(base::Bind(&Observer), proxy);
StartupTaskRunner runner(base::BindOnce(&Observer), proxy);
StartupTask task3 =
base::Bind(&StartupTaskRunnerTest::FailingTask, base::Unretained(this));
......@@ -230,7 +230,7 @@ TEST_F(StartupTaskRunnerTest, AsynchronousExecution) {
.Times(testing::Between(2, 3))
.WillRepeatedly(testing::Return(true));
StartupTaskRunner runner(base::Bind(&Observer), proxy);
StartupTaskRunner runner(base::BindOnce(&Observer), proxy);
StartupTask task1 =
base::Bind(&StartupTaskRunnerTest::Task1, base::Unretained(this));
......@@ -276,7 +276,7 @@ TEST_F(StartupTaskRunnerTest, AsynchronousExecutionFailedTask) {
.Times(testing::Between(1, 2))
.WillRepeatedly(testing::Return(true));
StartupTaskRunner runner(base::Bind(&Observer), proxy);
StartupTaskRunner runner(base::BindOnce(&Observer), proxy);
StartupTask task3 =
base::Bind(&StartupTaskRunnerTest::FailingTask, base::Unretained(this));
......
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