OLD | NEW |
| (Empty) |
1 // Copyright 2016 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 "components/scheduler/renderer/auto_advancing_virtual_time_domain.h" | |
6 | |
7 namespace scheduler { | |
8 | |
9 AutoAdvancingVirtualTimeDomain::AutoAdvancingVirtualTimeDomain( | |
10 base::TimeTicks initial_time) | |
11 : VirtualTimeDomain(nullptr, initial_time), | |
12 can_advance_virtual_time_(true) {} | |
13 | |
14 AutoAdvancingVirtualTimeDomain::~AutoAdvancingVirtualTimeDomain() {} | |
15 | |
16 bool AutoAdvancingVirtualTimeDomain::MaybeAdvanceTime() { | |
17 base::TimeTicks run_time; | |
18 if (!can_advance_virtual_time_ || !NextScheduledRunTime(&run_time)) { | |
19 return false; | |
20 } | |
21 AdvanceTo(run_time); | |
22 return true; | |
23 } | |
24 | |
25 void AutoAdvancingVirtualTimeDomain::RequestWakeup(base::TimeTicks now, | |
26 base::TimeDelta delay) { | |
27 base::TimeTicks dummy; | |
28 if (can_advance_virtual_time_ && !NextScheduledRunTime(&dummy)) | |
29 RequestDoWork(); | |
30 } | |
31 | |
32 void AutoAdvancingVirtualTimeDomain::SetCanAdvanceVirtualTime( | |
33 bool can_advance_virtual_time) { | |
34 can_advance_virtual_time_ = can_advance_virtual_time; | |
35 if (can_advance_virtual_time_) | |
36 RequestDoWork(); | |
37 } | |
38 | |
39 const char* AutoAdvancingVirtualTimeDomain::GetName() const { | |
40 return "AutoAdvancingVirtualTimeDomain"; | |
41 } | |
42 | |
43 } // namespace scheduler | |
OLD | NEW |