Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(927)

Unified Diff: content/renderer/scheduler/renderer_scheduler_impl.cc

Issue 847883002: Reland "Throttle resource message requests during user interaction" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pull out ThreadChecker fix Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 fbd8cbe605c07dfd3b1a47f62f29c45e33b85fee..4ffe487b3764faa5abac556b86425a6f6469ee7b 100644
--- a/content/renderer/scheduler/renderer_scheduler_impl.cc
+++ b/content/renderer/scheduler/renderer_scheduler_impl.cc
@@ -147,6 +147,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_)
@@ -157,6 +166,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 conceivably be implemented in terms of
+ // |IsHighPriorityWorkAnticipated|, but for clarity is not.
return SchedulerPolicy() == COMPOSITOR_PRIORITY_POLICY &&
!task_queue_manager_->IsQueueEmpty(COMPOSITOR_TASK_QUEUE);
}
« no previous file with comments | « content/renderer/scheduler/renderer_scheduler_impl.h ('k') | content/renderer/scheduler/renderer_scheduler_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698