Index: content/renderer/scheduler/renderer_scheduler_impl.cc |
diff --git a/content/renderer/scheduler/renderer_scheduler_impl.cc b/content/renderer/scheduler/renderer_scheduler_impl.cc |
index a0f683f95888f1a0fa9a8809cbaddfa0800e7017..d66269b0a69b0b3cb0f6d2798642c3981963b35e 100644 |
--- a/content/renderer/scheduler/renderer_scheduler_impl.cc |
+++ b/content/renderer/scheduler/renderer_scheduler_impl.cc |
@@ -43,6 +43,8 @@ RendererSchedulerImpl::RendererSchedulerImpl( |
CONTROL_TASK_QUEUE, RendererTaskQueueSelector::CONTROL_PRIORITY); |
renderer_task_queue_selector_->DisableQueue(IDLE_TASK_QUEUE); |
task_queue_manager_->SetAutoPump(IDLE_TASK_QUEUE, false); |
+ // See crbug.com/444764 for how this work batch size was derived. |
+ task_queue_manager_->SetWorkBatchSize(4); |
for (size_t i = 0; i < TASK_QUEUE_COUNT; i++) { |
task_queue_manager_->SetQueueName( |
@@ -239,8 +241,15 @@ void RendererSchedulerImpl::EndIdlePeriod() { |
renderer_task_queue_selector_->DisableQueue(IDLE_TASK_QUEUE); |
} |
+void RendererSchedulerImpl::SetTimeSourceForTesting( |
+ scoped_refptr<cc::TestNowSource> time_source) { |
+ main_thread_checker_.CalledOnValidThread(); |
+ time_source_ = time_source; |
+ task_queue_manager_->SetTimeSourceForTesting(time_source); |
+} |
+ |
base::TimeTicks RendererSchedulerImpl::Now() const { |
- return gfx::FrameTime::Now(); |
+ return UNLIKELY(time_source_) ? time_source_->Now() : base::TimeTicks::Now(); |
} |
RendererSchedulerImpl::PollableNeedsUpdateFlag::PollableNeedsUpdateFlag( |