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

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

Issue 1441073006: Move throttling of background timers into the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Last few changes Sami requested Created 5 years, 1 month 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: components/scheduler/renderer/renderer_scheduler_impl.cc
diff --git a/components/scheduler/renderer/renderer_scheduler_impl.cc b/components/scheduler/renderer/renderer_scheduler_impl.cc
index 0ee5481dcf20774973ab936515d0273eee81992c..0ef81cdf4537d33d9aa0dc4cd7fc40936eb38c47 100644
--- a/components/scheduler/renderer/renderer_scheduler_impl.cc
+++ b/components/scheduler/renderer/renderer_scheduler_impl.cc
@@ -12,6 +12,7 @@
#include "cc/output/begin_frame_args.h"
#include "components/scheduler/base/task_queue_impl.h"
#include "components/scheduler/base/task_queue_selector.h"
+#include "components/scheduler/base/virtual_time_domain.h"
#include "components/scheduler/child/scheduler_tqm_delegate.h"
#include "components/scheduler/renderer/webthread_impl_for_renderer_scheduler.h"
@@ -41,6 +42,7 @@ RendererSchedulerImpl::RendererSchedulerImpl(
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"),
"RendererSchedulerIdlePeriod",
base::TimeDelta()),
+ throttling_helper_(this, "renderer.scheduler"),
render_widget_scheduler_signals_(this),
control_task_runner_(helper_.ControlTaskRunner()),
compositor_task_runner_(
@@ -176,6 +178,11 @@ scoped_refptr<TaskQueue> RendererSchedulerImpl::TimerTaskRunner() {
return default_timer_task_runner_;
}
+scoped_refptr<TaskQueue> RendererSchedulerImpl::ControlTaskRunner() {
+ helper_.CheckOnValidThread();
+ return helper_.ControlTaskRunner();
+}
+
scoped_refptr<TaskQueue> RendererSchedulerImpl::NewLoadingTaskRunner(
const char* name) {
helper_.CheckOnValidThread();
@@ -535,7 +542,7 @@ bool RendererSchedulerImpl::ShouldYieldForHighPriorityWork() {
case UseCase::MAIN_THREAD_GESTURE:
case UseCase::SYNCHRONIZED_GESTURE:
- return !compositor_task_runner_->IsQueueEmpty() ||
+ return compositor_task_runner_->HasPendingImmediateTask() ||
MainThreadOnly().touchstart_expected_soon;
case UseCase::TOUCHSTART:
@@ -1046,4 +1053,16 @@ double RendererSchedulerImpl::MonotonicallyIncreasingTimeSeconds() const {
static_cast<double>(base::Time::kMicrosecondsPerSecond);
}
+void RendererSchedulerImpl::RegisterTimeDomain(TimeDomain* time_domain) {
+ helper_.RegisterTimeDomain(time_domain);
+}
+
+void RendererSchedulerImpl::UnregisterTimeDomain(TimeDomain* time_domain) {
+ helper_.UnregisterTimeDomain(time_domain);
+}
+
+base::TickClock* RendererSchedulerImpl::tick_clock() const {
+ return helper_.scheduler_tqm_delegate().get();
+}
+
} // namespace scheduler
« no previous file with comments | « components/scheduler/renderer/renderer_scheduler_impl.h ('k') | components/scheduler/renderer/throttling_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698