| Index: components/scheduler/child/single_thread_idle_task_runner.h
|
| diff --git a/components/scheduler/child/single_thread_idle_task_runner.h b/components/scheduler/child/single_thread_idle_task_runner.h
|
| index 358389a96dc50607a7a1ad449d983f719369f0b9..f692ce7a37ce9e1a4fbe5da3d22550ef260af5ac 100644
|
| --- a/components/scheduler/child/single_thread_idle_task_runner.h
|
| +++ b/components/scheduler/child/single_thread_idle_task_runner.h
|
| @@ -10,6 +10,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/time/time.h"
|
| +#include "components/scheduler/scheduler_export.h"
|
|
|
| namespace scheduler {
|
|
|
| @@ -22,12 +23,34 @@ class SingleThreadIdleTaskRunner
|
| public:
|
| typedef base::Callback<void(base::TimeTicks)> IdleTask;
|
|
|
| + // Used to request idle task deadlines and signal posting of idle tasks.
|
| + class SCHEDULER_EXPORT Delegate {
|
| + public:
|
| + Delegate();
|
| + virtual ~Delegate();
|
| +
|
| + // Signals that an idle task has been posted. This will be called on the
|
| + // posting thread, which may not be the same thread as the
|
| + // SingleThreadIdleTaskRunner runs on.
|
| + virtual void OnIdleTaskPosted() = 0;
|
| +
|
| + // Signals that a new idle task is about to be run and returns the deadline
|
| + // for this idle task.
|
| + virtual base::TimeTicks WillProcessIdleTask() const = 0;
|
| +
|
| + // Signals that an idle task has finished being run.
|
| + virtual void DidProcessIdleTask() = 0;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(Delegate);
|
| + };
|
| +
|
| // NOTE Category strings must have application lifetime (statics or
|
| // literals). They may not include " chars.
|
| SingleThreadIdleTaskRunner(
|
| scoped_refptr<base::SingleThreadTaskRunner> idle_priority_task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> after_wakeup_task_runner,
|
| - base::Callback<void(base::TimeTicks*)> deadline_supplier,
|
| + Delegate* Delegate,
|
| const char* tracing_category);
|
|
|
| virtual void PostIdleTask(const tracked_objects::Location& from_here,
|
| @@ -53,7 +76,7 @@ class SingleThreadIdleTaskRunner
|
|
|
| scoped_refptr<base::SingleThreadTaskRunner> idle_priority_task_runner_;
|
| scoped_refptr<base::SingleThreadTaskRunner> after_wakeup_task_runner_;
|
| - base::Callback<void(base::TimeTicks*)> deadline_supplier_;
|
| + Delegate* delegate_; // NOT OWNED
|
| const char* tracing_category_;
|
| base::WeakPtr<SingleThreadIdleTaskRunner> weak_scheduler_ptr_;
|
| base::WeakPtrFactory<SingleThreadIdleTaskRunner> weak_factory_;
|
|
|