| Index: device/bluetooth/test/bluetooth_test_win.cc
 | 
| diff --git a/device/bluetooth/test/bluetooth_test_win.cc b/device/bluetooth/test/bluetooth_test_win.cc
 | 
| index 5bbdebfc4dbb43ccb46b0a48927b5ba7677c92e1..091aa2e12e2eaaf384ea28514df010a525daaebe 100644
 | 
| --- a/device/bluetooth/test/bluetooth_test_win.cc
 | 
| +++ b/device/bluetooth/test/bluetooth_test_win.cc
 | 
| @@ -8,7 +8,7 @@
 | 
|  #include "base/location.h"
 | 
|  #include "base/run_loop.h"
 | 
|  #include "base/strings/sys_string_conversions.h"
 | 
| -#include "base/test/test_pending_task.h"
 | 
| +#include "base/test/test_pending_task_info.h"
 | 
|  #include "base/time/time.h"
 | 
|  #include "device/bluetooth/bluetooth_adapter_win.h"
 | 
|  #include "device/bluetooth/bluetooth_low_energy_win.h"
 | 
| @@ -67,6 +67,12 @@ BTH_LE_UUID CanonicalStringToBTH_LE_UUID(std::string uuid) {
 | 
|    return win_uuid;
 | 
|  }
 | 
|  
 | 
| +// TODO(tzik): Remove this helper once TaskRunner has migrated from Clrosure to
 | 
| +// OnceClosure.
 | 
| +void RunOnceClosure(base::OnceClosure closure) {
 | 
| +  std::move(closure).Run();
 | 
| +}
 | 
| +
 | 
|  }  // namespace
 | 
|  
 | 
|  namespace device {
 | 
| @@ -471,25 +477,27 @@ win::GattCharacteristic* BluetoothTestWin::GetSimulatedCharacteristic(
 | 
|  }
 | 
|  
 | 
|  void BluetoothTestWin::RunPendingTasksUntilCallback() {
 | 
| -  std::deque<base::TestPendingTask> tasks =
 | 
| -      bluetooth_task_runner_->TakePendingTasks();
 | 
| +  base::TestPendingTaskQueue tasks = bluetooth_task_runner_->TakePendingTasks();
 | 
|    int original_callback_count = callback_count_;
 | 
|    int original_error_callback_count = error_callback_count_;
 | 
|    do {
 | 
| -    base::TestPendingTask task = tasks.front();
 | 
| +    base::OnceClosure task = std::move(tasks.front().second);
 | 
|      tasks.pop_front();
 | 
| -    task.task.Run();
 | 
| +    std::move(task).Run();
 | 
|      base::RunLoop().RunUntilIdle();
 | 
|    } while (tasks.size() && callback_count_ == original_callback_count &&
 | 
|             error_callback_count_ == original_error_callback_count);
 | 
|  
 | 
|    // Put the rest of pending tasks back to Bluetooth task runner.
 | 
| -  for (const auto& task : tasks) {
 | 
| -    if (task.delay.is_zero()) {
 | 
| -      bluetooth_task_runner_->PostTask(task.location, task.task);
 | 
| +  for (auto& pending_task : tasks) {
 | 
| +    const base::TestPendingTaskInfo& task_info = pending_task.first;
 | 
| +    base::Closure task =
 | 
| +        base::Bind(&RunOnceClosure, base::Passed(&pending_task.second));
 | 
| +    if (task_info.delay.is_zero()) {
 | 
| +      bluetooth_task_runner_->PostTask(task_info.location, task);
 | 
|      } else {
 | 
| -      bluetooth_task_runner_->PostDelayedTask(task.location, task.task,
 | 
| -                                              task.delay);
 | 
| +      bluetooth_task_runner_->PostDelayedTask(task_info.location, task,
 | 
| +                                              task_info.delay);
 | 
|      }
 | 
|    }
 | 
|  }
 | 
| 
 |