Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1891)

Unified Diff: cc/scheduler/delay_based_time_source.cc

Issue 2061273002: cc: Make BackToBackBeginFrameSource a SyntheticBeginFrameSource. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: syntheticbeginframesource: delete-DEBUG_FRAMES Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/scheduler/delay_based_time_source.h ('k') | cc/scheduler/delay_based_time_source_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 75250ec33ac8b419c2f4a587b939eb8d85953e0f..bc2ec5f8744971904b4e21a5da611c2dded424ec 100644
--- a/cc/scheduler/delay_based_time_source.cc
+++ b/cc/scheduler/delay_based_time_source.cc
@@ -14,24 +14,22 @@
#include "base/single_thread_task_runner.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/trace_event_argument.h"
+#include "cc/output/begin_frame_args.h"
namespace cc {
// The following methods correspond to the DelayBasedTimeSource that uses
// the base::TimeTicks::Now as the timebase.
DelayBasedTimeSource::DelayBasedTimeSource(
- base::TimeDelta interval,
base::SingleThreadTaskRunner* task_runner)
: client_(nullptr),
active_(false),
timebase_(base::TimeTicks()),
- interval_(interval),
- last_tick_time_(base::TimeTicks() - interval),
+ interval_(BeginFrameArgs::DefaultInterval()),
+ last_tick_time_(base::TimeTicks() - interval_),
next_tick_time_(base::TimeTicks()),
task_runner_(task_runner),
- weak_factory_(this) {
- DCHECK_GT(interval, base::TimeDelta());
-}
+ weak_factory_(this) {}
DelayBasedTimeSource::~DelayBasedTimeSource() {}
@@ -84,7 +82,6 @@ void DelayBasedTimeSource::SetClient(DelayBasedTimeSourceClient* client) {
void DelayBasedTimeSource::SetTimebaseAndInterval(base::TimeTicks timebase,
base::TimeDelta interval) {
- DCHECK_GT(interval, base::TimeDelta());
interval_ = interval;
timebase_ = timebase;
}
@@ -148,10 +145,14 @@ base::TimeTicks DelayBasedTimeSource::Now() const {
// now=37 tick_target=16.667 new_target=50.000 -->
// tick(), PostDelayedTask(floor(50.000-37)) --> PostDelayedTask(13)
void DelayBasedTimeSource::PostNextTickTask(base::TimeTicks now) {
- next_tick_time_ = now.SnappedToNextTick(timebase_, interval_);
- if (next_tick_time_ == now)
- next_tick_time_ += interval_;
- DCHECK_GT(next_tick_time_, now);
+ if (interval_.is_zero()) {
+ next_tick_time_ = now;
+ } else {
+ next_tick_time_ = now.SnappedToNextTick(timebase_, interval_);
+ if (next_tick_time_ == now)
+ next_tick_time_ += interval_;
+ DCHECK_GT(next_tick_time_, now);
+ }
tick_closure_.Reset(base::Bind(&DelayBasedTimeSource::OnTimerTick,
weak_factory_.GetWeakPtr()));
task_runner_->PostDelayedTask(FROM_HERE, tick_closure_.callback(),
« no previous file with comments | « cc/scheduler/delay_based_time_source.h ('k') | cc/scheduler/delay_based_time_source_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698