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 5b11beacbf75c2dcb2b835d27a537cc1cbfcf447..9076b2c56a6a7fde816d4f9cfe68f28321b04102 100644 |
--- a/components/scheduler/renderer/renderer_scheduler_impl.cc |
+++ b/components/scheduler/renderer/renderer_scheduler_impl.cc |
@@ -1128,6 +1128,27 @@ |
UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED); |
} |
+double RendererSchedulerImpl::VirtualTimeSeconds() const { |
+ TaskQueue* current_tq = helper_.CurrentlyExecutingTaskQueue(); |
+ if (current_tq && current_tq->GetTimeDomain()) { |
+ return (current_tq->GetTimeDomain()->Now() - |
+ base::TimeTicks::UnixEpoch()).InSecondsF(); |
+ } |
+ return (helper_.scheduler_tqm_delegate()->NowTicks() - |
+ base::TimeTicks::UnixEpoch()).InSecondsF(); |
+} |
+ |
+double RendererSchedulerImpl::MonotonicallyIncreasingVirtualTimeSeconds() |
+ const { |
+ TaskQueue* current_tq = helper_.CurrentlyExecutingTaskQueue(); |
+ if (current_tq && current_tq->GetTimeDomain()) { |
+ return current_tq->GetTimeDomain()->Now().ToInternalValue() / |
+ static_cast<double>(base::Time::kMicrosecondsPerSecond); |
+ } |
+ return helper_.scheduler_tqm_delegate()->NowTicks().ToInternalValue() / |
+ static_cast<double>(base::Time::kMicrosecondsPerSecond); |
+} |
+ |
void RendererSchedulerImpl::RegisterTimeDomain(TimeDomain* time_domain) { |
helper_.RegisterTimeDomain(time_domain); |
} |