Index: content/child/scheduler/worker_scheduler_impl.h |
diff --git a/content/renderer/scheduler/null_renderer_scheduler.h b/content/child/scheduler/worker_scheduler_impl.h |
similarity index 30% |
copy from content/renderer/scheduler/null_renderer_scheduler.h |
copy to content/child/scheduler/worker_scheduler_impl.h |
index 7df8a2bb3853f2ea43e3805fee08a5927adabbf9..186d2bcb53ac0b3483c51560f676be9b040c4957 100644 |
--- a/content/renderer/scheduler/null_renderer_scheduler.h |
+++ b/content/child/scheduler/worker_scheduler_impl.h |
@@ -1,45 +1,61 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Copyright 2015 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. |
-#ifndef CONTENT_RENDERER_SCHEDULER_NULL_RENDERER_SCHEDULER_H_ |
-#define CONTENT_RENDERER_SCHEDULER_NULL_RENDERER_SCHEDULER_H_ |
+#ifndef CONTENT_CHILD_SCHEDULER_WORKER_SCHEDULER_IMPL_H_ |
+#define CONTENT_CHILD_SCHEDULER_WORKER_SCHEDULER_IMPL_H_ |
-#include "content/renderer/scheduler/renderer_scheduler.h" |
+#include "content/child/scheduler/worker_scheduler.h" |
+#include "content/child/scheduler/scheduler_helper.h" |
+ |
+namespace base { |
+namespace trace_event { |
+class ConvertableToTraceFormat; |
+} |
+} |
namespace content { |
-class NullRendererScheduler : public RendererScheduler { |
+class NestableSingleThreadTaskRunner; |
+ |
+class CONTENT_EXPORT WorkerSchedulerImpl |
+ : public WorkerScheduler, |
+ public SchedulerHelper::SchedulerHelperDelegate { |
public: |
- NullRendererScheduler(); |
- ~NullRendererScheduler() override; |
+ explicit WorkerSchedulerImpl( |
+ scoped_refptr<NestableSingleThreadTaskRunner> main_task_runner); |
+ ~WorkerSchedulerImpl() override; |
+ // WorkerScheduler implementation: |
scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override; |
- scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; |
- scoped_refptr<base::SingleThreadTaskRunner> LoadingTaskRunner() override; |
scoped_refptr<SingleThreadIdleTaskRunner> IdleTaskRunner() override; |
- |
- void WillBeginFrame(const cc::BeginFrameArgs& args) override; |
- void BeginFrameNotExpectedSoon() override; |
- void DidCommitFrameToCompositor() override; |
- void DidReceiveInputEventOnCompositorThread( |
- const blink::WebInputEvent& web_input_event) override; |
- void DidAnimateForInputOnCompositorThread() override; |
- bool IsHighPriorityWorkAnticipated() override; |
- bool ShouldYieldForHighPriorityWork() override; |
bool CanExceedIdleDeadlineIfRequired() const override; |
void AddTaskObserver(base::MessageLoop::TaskObserver* task_observer) override; |
void RemoveTaskObserver( |
base::MessageLoop::TaskObserver* task_observer) override; |
+ void Init() override; |
void Shutdown() override; |
+ void SetTimeSourceForTesting(scoped_refptr<cc::TestNowSource> time_source); |
+ void SetWorkBatchSizeForTesting(size_t work_batch_size); |
+ base::TimeTicks CurrentIdleTaskDeadlineForTesting() const; |
+ |
+ protected: |
+ // SchedulerHelperDelegate implementation: |
+ bool CanEnterLongIdlePeriod( |
+ base::TimeTicks now, |
+ base::TimeDelta* next_long_idle_period_delay_out) override; |
+ void IsNotQuiescent() override {} |
+ |
private: |
- scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
- scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_; |
+ void MaybeStartLongIdlePeriod(); |
+ |
+ SchedulerHelper helper_; |
+ bool initialized_; |
- DISALLOW_COPY_AND_ASSIGN(NullRendererScheduler); |
+ DISALLOW_COPY_AND_ASSIGN(WorkerSchedulerImpl); |
}; |
} // namespace content |
-#endif // CONTENT_RENDERER_SCHEDULER_NULL_RENDERER_SCHEDULER_H_ |
+#endif // CONTENT_CHILD_SCHEDULER_WORKER_SCHEDULER_IMPL_H_ |