| 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
|
|
|