| Index: cc/scheduler/delay_based_time_source.cc
|
| diff --git a/cc/scheduler/delay_based_time_source.cc b/cc/scheduler/delay_based_time_source.cc
|
| index 457f7186a8d146159e3deb8f47e18dc4100543a8..ef43524a878288d72e4b89a5fdf6ce485fc18e33 100644
|
| --- a/cc/scheduler/delay_based_time_source.cc
|
| +++ b/cc/scheduler/delay_based_time_source.cc
|
| @@ -234,34 +234,20 @@ base::TimeTicks DelayBasedTimeSource::Now() const {
|
| // now=37 tick_target=16.667 new_target=50.000 -->
|
| // tick(), PostDelayedTask(floor(50.000-37)) --> PostDelayedTask(13)
|
| base::TimeTicks DelayBasedTimeSource::NextTickTarget(base::TimeTicks now) {
|
| - base::TimeDelta new_interval = next_parameters_.interval;
|
| -
|
| - // |interval_offset| is the offset from |now| to the next multiple of
|
| - // |interval| after |tick_target|, possibly negative if in the past.
|
| - base::TimeDelta interval_offset = base::TimeDelta::FromInternalValue(
|
| - (next_parameters_.tick_target - now).ToInternalValue() %
|
| - new_interval.ToInternalValue());
|
| - // If |now| is exactly on the interval (i.e. offset==0), don't adjust.
|
| - // Otherwise, if |tick_target| was in the past, adjust forward to the next
|
| - // tick after |now|.
|
| - if (interval_offset.ToInternalValue() != 0 &&
|
| - next_parameters_.tick_target < now) {
|
| - interval_offset += new_interval;
|
| - }
|
| -
|
| - base::TimeTicks new_tick_target = now + interval_offset;
|
| + base::TimeTicks new_tick_target = now.SnappedToNextTick(
|
| + next_parameters_.tick_target, next_parameters_.interval);
|
| DCHECK(now <= new_tick_target)
|
| << "now = " << now.ToInternalValue()
|
| << "; new_tick_target = " << new_tick_target.ToInternalValue()
|
| - << "; new_interval = " << new_interval.InMicroseconds()
|
| - << "; tick_target = " << next_parameters_.tick_target.ToInternalValue()
|
| - << "; interval_offset = " << interval_offset.ToInternalValue();
|
| + << "; new_interval = " << next_parameters_.interval.InMicroseconds()
|
| + << "; tick_target = " << next_parameters_.tick_target.ToInternalValue();
|
|
|
| // Avoid double ticks when:
|
| // 1) Turning off the timer and turning it right back on.
|
| // 2) Jittery data is passed to SetTimebaseAndInterval().
|
| - if (new_tick_target - last_tick_time_ <= new_interval / kDoubleTickDivisor)
|
| - new_tick_target += new_interval;
|
| + if (new_tick_target - last_tick_time_ <=
|
| + next_parameters_.interval / kDoubleTickDivisor)
|
| + new_tick_target += next_parameters_.interval;
|
|
|
| return new_tick_target;
|
| }
|
| @@ -290,7 +276,8 @@ std::string DelayBasedTimeSourceHighRes::TypeString() const {
|
| return "DelayBasedTimeSourceHighRes";
|
| }
|
|
|
| -void DelayBasedTimeSource::AsValueInto(base::debug::TracedValue* state) const {
|
| +void DelayBasedTimeSource::AsValueInto(
|
| + base::trace_event::TracedValue* state) const {
|
| state->SetString("type", TypeString());
|
| state->SetDouble("last_tick_time_us", LastTickTime().ToInternalValue());
|
| state->SetDouble("next_tick_time_us", NextTickTime().ToInternalValue());
|
|
|