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..64d904f3da57928a29a94533b70e0ef2307936d7 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_( |
@@ -66,6 +68,10 @@ RendererSchedulerImpl::RendererSchedulerImpl( |
default_loading_task_runner_ = NewLoadingTaskRunner("default_loading_tq"); |
default_timer_task_runner_ = NewTimerTaskRunner("default_timer_tq"); |
+ virtual_time_domain_ = make_scoped_refptr( |
+ new VirtualTimeDomain(helper_.scheduler_tqm_delegate()->NowTicks())); |
+ helper_.RegisterTimeDomain(virtual_time_domain_); |
+ |
TRACE_EVENT_OBJECT_CREATED_WITH_ID( |
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler", |
this); |
@@ -78,6 +84,8 @@ RendererSchedulerImpl::~RendererSchedulerImpl() { |
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler", |
this); |
+ helper_.UnregisterTimeDomain(virtual_time_domain_); |
+ |
for (const scoped_refptr<TaskQueue>& loading_queue : loading_task_runners_) { |
loading_queue->RemoveTaskObserver( |
&MainThreadOnly().loading_task_cost_estimator); |
@@ -176,6 +184,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(); |
@@ -1046,4 +1059,14 @@ double RendererSchedulerImpl::MonotonicallyIncreasingTimeSeconds() const { |
static_cast<double>(base::Time::kMicrosecondsPerSecond); |
} |
+void RendererSchedulerImpl::RegisterTimeDomain( |
+ const scoped_refptr<TimeDomain>& time_domain) { |
+ helper_.RegisterTimeDomain(time_domain); |
+} |
+ |
+void RendererSchedulerImpl::UnregisterTimeDomain( |
+ const scoped_refptr<TimeDomain>& time_domain) { |
+ helper_.UnregisterTimeDomain(time_domain); |
+} |
+ |
} // namespace scheduler |