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

Unified Diff: cc/scheduler/begin_frame_source.cc

Issue 1200113003: cc: Cleanup DelayBasedTimeSource code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@task_runner_refptr
Patch Set: mithro's review Created 5 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
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..8c97f6e20b67d292e970de193fcd57368ed68d34 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);
}
@@ -251,8 +256,11 @@ void SyntheticBeginFrameSource::OnNeedsBeginFramesChange(
base::TimeTicks missed_tick_time =
time_source_->SetActive(needs_begin_frames);
if (!missed_tick_time.is_null()) {
- CallOnBeginFrame(
- CreateBeginFrameArgs(missed_tick_time, BeginFrameArgs::MISSED));
+ task_runner_->PostTask(
+ FROM_HERE, base::Bind(&SyntheticBeginFrameSource::CallOnBeginFrame,
+ weak_factory_.GetWeakPtr(),
+ CreateBeginFrameArgs(missed_tick_time,
+ BeginFrameArgs::MISSED)));
}
}

Powered by Google App Engine
This is Rietveld 408576698