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 |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3b3500efb781ff472d97f5061f77219accf2c6c5 |
--- /dev/null |
+++ b/components/scheduler/child/compositor_worker_scheduler.cc |
@@ -0,0 +1,53 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "components/scheduler/child/compositor_worker_scheduler.h" |
+ |
+#include "base/message_loop/message_loop.h" |
+#include "base/threading/thread.h" |
+ |
+namespace scheduler { |
+ |
+CompositorWorkerScheduler::CompositorWorkerScheduler(base::Thread* thread) |
+ : thread_(thread) {} |
+ |
+CompositorWorkerScheduler::~CompositorWorkerScheduler() {} |
+ |
+void CompositorWorkerScheduler::Init() {} |
+ |
+scoped_refptr<base::SingleThreadTaskRunner> |
+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(); |
+} |
+ |
+scoped_refptr<scheduler::SingleThreadIdleTaskRunner> |
+CompositorWorkerScheduler::IdleTaskRunner() { |
+ // TODO(sad): Not having a task-runner for idle tasks means v8 has to fallback |
+ // to inline GC, which might cause jank. |
+ return nullptr; |
+} |
+ |
+bool CompositorWorkerScheduler::CanExceedIdleDeadlineIfRequired() const { |
+ return false; |
+} |
+ |
+bool CompositorWorkerScheduler::ShouldYieldForHighPriorityWork() { |
+ return false; |
+} |
+ |
+void CompositorWorkerScheduler::AddTaskObserver( |
+ base::MessageLoop::TaskObserver* task_observer) { |
+ thread_->message_loop()->AddTaskObserver(task_observer); |
+} |
+ |
+void CompositorWorkerScheduler::RemoveTaskObserver( |
+ base::MessageLoop::TaskObserver* task_observer) { |
+ thread_->message_loop()->RemoveTaskObserver(task_observer); |
+} |
+ |
+void CompositorWorkerScheduler::Shutdown() {} |
+ |
+} // namespace scheduler |