| Index: components/scheduler/child/compositor_worker_scheduler.cc
|
| diff --git a/components/scheduler/child/compositor_worker_scheduler.cc b/components/scheduler/child/compositor_worker_scheduler.cc
|
| index 3b3500efb781ff472d97f5061f77219accf2c6c5..33535ce6fa96f3f280c1fe7ea6110b869193be2d 100644
|
| --- a/components/scheduler/child/compositor_worker_scheduler.cc
|
| +++ b/components/scheduler/child/compositor_worker_scheduler.cc
|
| @@ -9,6 +9,100 @@
|
|
|
| namespace scheduler {
|
|
|
| +// TODO(scheduler-dev): Get rid of this asap!
|
| +namespace {
|
| +class CompositorWorkerTaskRunnerWrapper : public TaskQueue {
|
| + public:
|
| + explicit CompositorWorkerTaskRunnerWrapper(
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner)
|
| + : task_runner_(task_runner) {}
|
| +
|
| + // TaskQueue implementation:
|
| + void UnregisterTaskQueue() override { NOTREACHED(); }
|
| +
|
| + bool RunsTasksOnCurrentThread() const override {
|
| + return task_runner_->RunsTasksOnCurrentThread();
|
| + }
|
| +
|
| + bool PostDelayedTask(const tracked_objects::Location& from_here,
|
| + const base::Closure& task,
|
| + base::TimeDelta delay) override {
|
| + return task_runner_->PostDelayedTask(from_here, task, delay);
|
| + }
|
| +
|
| + bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here,
|
| + const base::Closure& task,
|
| + base::TimeDelta delay) override {
|
| + return task_runner_->PostNonNestableDelayedTask(from_here, task, delay);
|
| + }
|
| +
|
| + void SetQueueEnabled(bool enabled) override { NOTREACHED(); }
|
| +
|
| + bool IsQueueEnabled() const override {
|
| + NOTREACHED();
|
| + return true;
|
| + }
|
| +
|
| + bool IsEmpty() const override {
|
| + NOTREACHED();
|
| + return false;
|
| + };
|
| +
|
| + bool HasPendingImmediateWork() const override {
|
| + NOTREACHED();
|
| + return false;
|
| + };
|
| +
|
| + bool NeedsPumping() const override {
|
| + NOTREACHED();
|
| + return false;
|
| + };
|
| +
|
| + const char* GetName() const override {
|
| + NOTREACHED();
|
| + return nullptr;
|
| + };
|
| +
|
| + void SetQueuePriority(QueuePriority priority) override { NOTREACHED(); }
|
| +
|
| + QueuePriority GetQueuePriority() const override {
|
| + NOTREACHED();
|
| + return QueuePriority::NORMAL_PRIORITY;
|
| + };
|
| +
|
| + void SetPumpPolicy(PumpPolicy pump_policy) override { NOTREACHED(); }
|
| +
|
| + PumpPolicy GetPumpPolicy() const override {
|
| + NOTREACHED();
|
| + return PumpPolicy::AUTO;
|
| + };
|
| +
|
| + void PumpQueue(bool may_post_dowork) override { NOTREACHED(); }
|
| +
|
| + void AddTaskObserver(
|
| + base::MessageLoop::TaskObserver* task_observer) override {
|
| + NOTREACHED();
|
| + }
|
| +
|
| + void RemoveTaskObserver(
|
| + base::MessageLoop::TaskObserver* task_observer) override {
|
| + NOTREACHED();
|
| + }
|
| +
|
| + void SetTimeDomain(TimeDomain* domain) override { NOTREACHED(); }
|
| +
|
| + TimeDomain* GetTimeDomain() const override {
|
| + NOTREACHED();
|
| + return nullptr;
|
| + }
|
| +
|
| + private:
|
| + ~CompositorWorkerTaskRunnerWrapper() override {}
|
| +
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| +};
|
| +} // namespace
|
| +
|
| CompositorWorkerScheduler::CompositorWorkerScheduler(base::Thread* thread)
|
| : thread_(thread) {}
|
|
|
| @@ -16,11 +110,11 @@ CompositorWorkerScheduler::~CompositorWorkerScheduler() {}
|
|
|
| void CompositorWorkerScheduler::Init() {}
|
|
|
| -scoped_refptr<base::SingleThreadTaskRunner>
|
| -CompositorWorkerScheduler::DefaultTaskRunner() {
|
| +scoped_refptr<TaskQueue> CompositorWorkerScheduler::DefaultTaskRunner() {
|
| // TODO(sad): Implement a more robust scheduler that can do idle tasks for GC
|
| // without regressing performance of the rest of the system.
|
| - return thread_->task_runner();
|
| + return make_scoped_refptr(
|
| + new CompositorWorkerTaskRunnerWrapper(thread_->task_runner()));
|
| }
|
|
|
| scoped_refptr<scheduler::SingleThreadIdleTaskRunner>
|
|
|