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 9615fe333f98bd753a4c5a7c5c6f30f8e5500df2..d8738b947c8ddcc02d132aaae86762d1d1dd1b3f 100644 |
--- a/content/renderer/scheduler/renderer_scheduler_impl.cc |
+++ b/content/renderer/scheduler/renderer_scheduler_impl.cc |
@@ -145,6 +145,15 @@ void RendererSchedulerImpl::UpdateForInputEvent() { |
last_input_time_ = Now(); |
} |
+bool RendererSchedulerImpl::IsHighPriorityWorkAnticipated() { |
+ main_thread_checker_.CalledOnValidThread(); |
+ if (!task_queue_manager_) |
+ return false; |
+ |
+ MaybeUpdatePolicy(); |
+ return SchedulerPolicy() == COMPOSITOR_PRIORITY_POLICY; |
+} |
+ |
bool RendererSchedulerImpl::ShouldYieldForHighPriorityWork() { |
main_thread_checker_.CalledOnValidThread(); |
if (!task_queue_manager_) |
@@ -155,6 +164,8 @@ bool RendererSchedulerImpl::ShouldYieldForHighPriorityWork() { |
// work outstanding. Note: even though the control queue is higher priority |
// we don't yield for it since these tasks are not user-provided work and they |
// are only intended to run before the next task, not interrupt the tasks. |
+ // Note: This function could conceivable be implemented in terms of |
+ // |IsHighPriorityWorkAnticipated|, but for clarity is not. |
return SchedulerPolicy() == COMPOSITOR_PRIORITY_POLICY && |
!task_queue_manager_->IsQueueEmpty(COMPOSITOR_TASK_QUEUE); |
} |