1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "third_party/blink/renderer/platform/scheduler/main_thread/non_waking_time_domain.h"
6 
7 namespace blink {
8 namespace scheduler {
9 
NonWakingTimeDomain(const base::TickClock * tick_clock)10 NonWakingTimeDomain::NonWakingTimeDomain(const base::TickClock* tick_clock)
11     : tick_clock_(tick_clock) {}
12 
13 NonWakingTimeDomain::~NonWakingTimeDomain() = default;
14 
CreateLazyNow() const15 base::sequence_manager::LazyNow NonWakingTimeDomain::CreateLazyNow() const {
16   return base::sequence_manager::LazyNow(tick_clock_);
17 }
18 
Now() const19 base::TimeTicks NonWakingTimeDomain::Now() const {
20   return tick_clock_->NowTicks();
21 }
22 
DelayTillNextTask(base::sequence_manager::LazyNow * lazy_now)23 base::Optional<base::TimeDelta> NonWakingTimeDomain::DelayTillNextTask(
24     base::sequence_manager::LazyNow* lazy_now) {
25   // NonWakingTimeDomain should never generate wakeups on its own.
26   return base::nullopt;
27 }
28 
MaybeFastForwardToNextTask(bool quit_when_idle_requested)29 bool NonWakingTimeDomain::MaybeFastForwardToNextTask(
30     bool quit_when_idle_requested) {
31   return false;
32 }
33 
GetName() const34 const char* NonWakingTimeDomain::GetName() const {
35   return "non_waking_time_domain";
36 }
37 
SetNextDelayedDoWork(base::sequence_manager::LazyNow * lazy_now,base::TimeTicks run_time)38 void NonWakingTimeDomain::SetNextDelayedDoWork(
39     base::sequence_manager::LazyNow* lazy_now,
40     base::TimeTicks run_time) {
41   // Do not request a wake-up, unlike a regular TimeDomain.
42 }
43 
44 }  // namespace scheduler
45 }  // namespace blink
46