| 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 b1fe02ba46b0efa965c740acdc0ac32d7048265b..2846bf5991eda473abb5c68f5e4b901612bb7402 100644
|
| --- a/components/scheduler/renderer/renderer_scheduler_impl.cc
|
| +++ b/components/scheduler/renderer/renderer_scheduler_impl.cc
|
| @@ -49,7 +49,8 @@ RendererSchedulerImpl::RendererSchedulerImpl(
|
| base::Bind(&RendererSchedulerImpl::UpdatePolicy,
|
| base::Unretained(this)),
|
| helper_.ControlTaskRunner()),
|
| - main_thread_only_(compositor_task_runner_, helper_.tick_clock()),
|
| + main_thread_only_(compositor_task_runner_,
|
| + helper_.scheduler_tqm_delegate().get()),
|
| policy_may_need_update_(&any_thread_lock_),
|
| weak_factory_(this) {
|
| update_policy_closure_ = base::Bind(&RendererSchedulerImpl::UpdatePolicy,
|
| @@ -252,7 +253,7 @@ void RendererSchedulerImpl::DidCommitFrameToCompositor() {
|
| if (helper_.IsShutdown())
|
| return;
|
|
|
| - base::TimeTicks now(helper_.tick_clock()->NowTicks());
|
| + base::TimeTicks now(helper_.scheduler_tqm_delegate()->NowTicks());
|
| if (now < MainThreadOnly().estimated_next_frame_begin) {
|
| // TODO(rmcilroy): Consider reducing the idle period based on the runtime of
|
| // the next pending delayed tasks (as currently done in for long idle times)
|
| @@ -309,7 +310,7 @@ void RendererSchedulerImpl::SetAllRenderWidgetsHidden(bool hidden) {
|
| // TODO(alexclarke): Should we update policy here?
|
| TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID(
|
| TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler",
|
| - this, AsValue(helper_.tick_clock()->NowTicks()));
|
| + this, AsValue(helper_.scheduler_tqm_delegate()->NowTicks()));
|
| }
|
|
|
| void RendererSchedulerImpl::SetHasVisibleRenderWidgetWithTouchHandler(
|
| @@ -402,7 +403,7 @@ void RendererSchedulerImpl::DidAnimateForInputOnCompositorThread() {
|
| "RendererSchedulerImpl::DidAnimateForInputOnCompositorThread");
|
| base::AutoLock lock(any_thread_lock_);
|
| AnyThread().fling_compositor_escalation_deadline =
|
| - helper_.tick_clock()->NowTicks() +
|
| + helper_.scheduler_tqm_delegate()->NowTicks() +
|
| base::TimeDelta::FromMilliseconds(kFlingEscalationLimitMillis);
|
| }
|
|
|
| @@ -410,7 +411,7 @@ void RendererSchedulerImpl::UpdateForInputEventOnCompositorThread(
|
| blink::WebInputEvent::Type type,
|
| InputEventState input_event_state) {
|
| base::AutoLock lock(any_thread_lock_);
|
| - base::TimeTicks now = helper_.tick_clock()->NowTicks();
|
| + base::TimeTicks now = helper_.scheduler_tqm_delegate()->NowTicks();
|
|
|
| // TODO(alexclarke): Move WebInputEventTraits where we can access it from here
|
| // and record the name rather than the integer representation.
|
| @@ -492,7 +493,7 @@ void RendererSchedulerImpl::DidHandleInputEventOnMainThread(
|
| if (ShouldPrioritizeInputEvent(web_input_event)) {
|
| base::AutoLock lock(any_thread_lock_);
|
| AnyThread().user_model.DidFinishProcessingInputEvent(
|
| - helper_.tick_clock()->NowTicks());
|
| + helper_.scheduler_tqm_delegate()->NowTicks());
|
| }
|
| }
|
|
|
| @@ -583,7 +584,7 @@ void RendererSchedulerImpl::UpdatePolicyLocked(UpdateType update_type) {
|
| if (helper_.IsShutdown())
|
| return;
|
|
|
| - base::TimeTicks now = helper_.tick_clock()->NowTicks();
|
| + base::TimeTicks now = helper_.scheduler_tqm_delegate()->NowTicks();
|
| policy_may_need_update_.SetWhileLocked(false);
|
|
|
| base::TimeDelta expected_use_case_duration;
|
| @@ -885,7 +886,7 @@ RendererSchedulerImpl::AsValueLocked(base::TimeTicks optional_now) const {
|
| any_thread_lock_.AssertAcquired();
|
|
|
| if (optional_now.is_null())
|
| - optional_now = helper_.tick_clock()->NowTicks();
|
| + optional_now = helper_.scheduler_tqm_delegate()->NowTicks();
|
| scoped_refptr<base::trace_event::TracedValue> state =
|
| new base::trace_event::TracedValue();
|
|
|
| @@ -963,7 +964,8 @@ void RendererSchedulerImpl::OnIdlePeriodStarted() {
|
|
|
| void RendererSchedulerImpl::OnIdlePeriodEnded() {
|
| base::AutoLock lock(any_thread_lock_);
|
| - AnyThread().last_idle_period_end_time = helper_.tick_clock()->NowTicks();
|
| + AnyThread().last_idle_period_end_time =
|
| + helper_.scheduler_tqm_delegate()->NowTicks();
|
| AnyThread().in_idle_period = false;
|
| UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED);
|
| }
|
| @@ -987,7 +989,7 @@ void RendererSchedulerImpl::OnNavigationStarted() {
|
| "RendererSchedulerImpl::OnNavigationStarted");
|
| base::AutoLock lock(any_thread_lock_);
|
| AnyThread().rails_loading_priority_deadline =
|
| - helper_.tick_clock()->NowTicks() +
|
| + helper_.scheduler_tqm_delegate()->NowTicks() +
|
| base::TimeDelta::FromMilliseconds(
|
| kRailsInitialLoadingPrioritizationMillis);
|
| ResetForNavigationLocked();
|
| @@ -1023,9 +1025,18 @@ void RendererSchedulerImpl::ResetForNavigationLocked() {
|
| MainThreadOnly().loading_task_cost_estimator.Clear();
|
| MainThreadOnly().timer_task_cost_estimator.Clear();
|
| MainThreadOnly().idle_time_estimator.Clear();
|
| - AnyThread().user_model.Reset(helper_.tick_clock()->NowTicks());
|
| + AnyThread().user_model.Reset(helper_.scheduler_tqm_delegate()->NowTicks());
|
| MainThreadOnly().have_seen_a_begin_main_frame = false;
|
| UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED);
|
| }
|
|
|
| +double RendererSchedulerImpl::CurrentTimeSeconds() const {
|
| + return helper_.scheduler_tqm_delegate()->CurrentTimeSeconds();
|
| +}
|
| +
|
| +double RendererSchedulerImpl::MonotonicallyIncreasingTimeSeconds() const {
|
| + return helper_.scheduler_tqm_delegate()->NowTicks().ToInternalValue() /
|
| + static_cast<double>(base::Time::kMicrosecondsPerSecond);
|
| +}
|
| +
|
| } // namespace scheduler
|
|
|