Index: cc/scheduler/begin_frame_source.cc |
diff --git a/cc/scheduler/begin_frame_source.cc b/cc/scheduler/begin_frame_source.cc |
index bc828026303bce098331606e8c675a73bf5ff110..e7f6425f4d24f5f8585cfc09eaf5441624127253 100644 |
--- a/cc/scheduler/begin_frame_source.cc |
+++ b/cc/scheduler/begin_frame_source.cc |
@@ -210,12 +210,17 @@ scoped_ptr<SyntheticBeginFrameSource> SyntheticBeginFrameSource::Create( |
base::TimeDelta initial_vsync_interval) { |
scoped_ptr<DelayBasedTimeSource> time_source = |
DelayBasedTimeSource::Create(initial_vsync_interval, task_runner); |
- return make_scoped_ptr(new SyntheticBeginFrameSource(time_source.Pass())); |
+ return make_scoped_ptr( |
+ new SyntheticBeginFrameSource(task_runner, time_source.Pass())); |
} |
SyntheticBeginFrameSource::SyntheticBeginFrameSource( |
+ base::SingleThreadTaskRunner* task_runner, |
scoped_ptr<DelayBasedTimeSource> time_source) |
- : BeginFrameSourceBase(), time_source_(time_source.Pass()) { |
+ : BeginFrameSourceBase(), |
+ task_runner_(task_runner), |
+ time_source_(time_source.Pass()), |
+ weak_factory_(this) { |
time_source_->SetActive(false); |
time_source_->SetClient(this); |
} |
@@ -239,7 +244,12 @@ BeginFrameArgs SyntheticBeginFrameSource::CreateBeginFrameArgs( |
time_source_->Interval(), type); |
} |
-// TimeSourceClient support |
+// DelayBasedTimeSourceClient support |
+void SyntheticBeginFrameSource::OnMissedTick() { |
mithro-old
2015/06/30 08:11:52
I feel like these callbacks should just take a tim
|
+ CallOnBeginFrame(CreateBeginFrameArgs(time_source_->MissedTickTime(), |
+ BeginFrameArgs::MISSED)); |
+} |
+ |
void SyntheticBeginFrameSource::OnTimerTick() { |
CallOnBeginFrame(CreateBeginFrameArgs(time_source_->LastTickTime(), |
BeginFrameArgs::NORMAL)); |
@@ -248,12 +258,7 @@ void SyntheticBeginFrameSource::OnTimerTick() { |
// BeginFrameSourceBase support |
void SyntheticBeginFrameSource::OnNeedsBeginFramesChange( |
bool needs_begin_frames) { |
- base::TimeTicks missed_tick_time = |
- time_source_->SetActive(needs_begin_frames); |
- if (!missed_tick_time.is_null()) { |
- CallOnBeginFrame( |
- CreateBeginFrameArgs(missed_tick_time, BeginFrameArgs::MISSED)); |
- } |
+ time_source_->SetActive(needs_begin_frames); |
} |
// Tracing support |