Index: base/test/scoped_mock_time_message_loop_task_runner.cc |
diff --git a/base/test/scoped_mock_time_message_loop_task_runner.cc b/base/test/scoped_mock_time_message_loop_task_runner.cc |
index 03c9c42c2292cfcd36e136d72182c15ba1102060..eba24e6c8039c21349e42c7c38deb9c48c6b24b5 100644 |
--- a/base/test/scoped_mock_time_message_loop_task_runner.cc |
+++ b/base/test/scoped_mock_time_message_loop_task_runner.cc |
@@ -6,14 +6,24 @@ |
#include <deque> |
+#include "base/bind.h" |
#include "base/logging.h" |
#include "base/message_loop/message_loop.h" |
#include "base/run_loop.h" |
-#include "base/test/test_pending_task.h" |
+#include "base/test/test_pending_task_info.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "base/time/time.h" |
namespace base { |
+namespace { |
+ |
+// TODO(tzik): Remove this helper once TaskRunner has migrated from Closure to |
+// OnceClosure. |
+void RunOnceClosure(OnceClosure closure) { |
+ std::move(closure).Run(); |
+} |
+ |
+} // namespace |
ScopedMockTimeMessageLoopTaskRunner::ScopedMockTimeMessageLoopTaskRunner() |
: task_runner_(new TestMockTimeTaskRunner), |
@@ -28,10 +38,12 @@ ScopedMockTimeMessageLoopTaskRunner::ScopedMockTimeMessageLoopTaskRunner() |
ScopedMockTimeMessageLoopTaskRunner::~ScopedMockTimeMessageLoopTaskRunner() { |
DCHECK(previous_task_runner_->RunsTasksOnCurrentThread()); |
DCHECK_EQ(task_runner_, ThreadTaskRunnerHandle::Get()); |
- for (const auto& pending_task : task_runner_->TakePendingTasks()) { |
+ for (auto& pending_task : task_runner_->TakePendingTasks()) { |
+ const TestPendingTaskInfo& task_info = pending_task.first; |
+ OnceClosure task = std::move(pending_task.second); |
previous_task_runner_->PostDelayedTask( |
- pending_task.location, pending_task.task, |
- pending_task.GetTimeToRun() - task_runner_->NowTicks()); |
+ task_info.location, Bind(&RunOnceClosure, Passed(&task)), |
+ task_info.GetTimeToRun() - task_runner_->NowTicks()); |
} |
MessageLoop::current()->SetTaskRunner(std::move(previous_task_runner_)); |
} |