26 std::shared_ptr<DefaultForegroundTaskRunner> task_runner);
42 std::unique_ptr<IdleTask> PopTaskFromIdleQueue();
44 double MonotonicallyIncreasingTime();
47 bool IdleTasksEnabled()
override;
48 bool NonNestableTasksEnabled()
const override;
49 bool NonNestableDelayedTasksEnabled()
const override;
53 void PostTaskImpl(std::unique_ptr<Task> task,
55 void PostDelayedTaskImpl(std::unique_ptr<Task> task,
double delay_in_seconds,
57 void PostIdleTaskImpl(std::unique_ptr<IdleTask> task,
59 void PostNonNestableTaskImpl(std::unique_ptr<Task> task,
61 void PostNonNestableDelayedTaskImpl(std::unique_ptr<Task> task,
62 double delay_in_seconds,
67 void WaitForTaskLocked();
73 std::unique_ptr<Task> PostTaskLocked(std::unique_ptr<Task> task,
74 Nestability nestability);
78 void PostDelayedTaskLocked(std::unique_ptr<Task> task,
79 double delay_in_seconds, Nestability nestability);
82 std::unique_ptr<Task> PopTaskFromDelayedQueueLocked(Nestability* nestability);
87 bool HasPoppableTaskInQueue()
const;
92 std::vector<std::unique_ptr<Task>> MoveExpiredDelayedTasksLocked();
94 bool terminated_ =
false;
97 int nesting_depth_ = 0;
121 std::priority_queue<DelayedEntry, std::vector<DelayedEntry>,