Index: cc/scheduler/scheduler.cc |
diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc |
index 1451237cd9ff0cbd94a91a038a88c50585ed291b..a20bfd2b3b0e2c6eece49c94fcfd66258bc5f5f3 100644 |
--- a/cc/scheduler/scheduler.cc |
+++ b/cc/scheduler/scheduler.cc |
@@ -79,11 +79,11 @@ Scheduler::Scheduler( |
SchedulerClient* client, |
const SchedulerSettings& scheduler_settings, |
int layer_tree_host_id, |
- const scoped_refptr<base::SingleThreadTaskRunner>& impl_task_runner) |
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) |
: settings_(scheduler_settings), |
client_(client), |
layer_tree_host_id_(layer_tree_host_id), |
- impl_task_runner_(impl_task_runner), |
+ task_runner_(task_runner), |
vsync_interval_(BeginFrameArgs::DefaultInterval()), |
last_set_needs_begin_frame_(false), |
begin_unthrottled_frame_posted_(false), |
@@ -128,7 +128,7 @@ Scheduler::~Scheduler() { |
void Scheduler::SetupSyntheticBeginFrames() { |
DCHECK(!synthetic_begin_frame_source_); |
synthetic_begin_frame_source_.reset( |
- new SyntheticBeginFrameSource(this, impl_task_runner_.get())); |
+ new SyntheticBeginFrameSource(this, task_runner_.get())); |
} |
void Scheduler::CommitVSyncParameters(base::TimeTicks timebase, |
@@ -274,6 +274,9 @@ base::TimeTicks Scheduler::LastBeginImplFrameTime() { |
} |
void Scheduler::SetupNextBeginFrameIfNeeded() { |
+ if (!task_runner_) |
+ return; |
+ |
bool needs_begin_frame = state_machine_.BeginFrameNeeded(); |
if (settings_.throttle_frame_production) { |
@@ -328,7 +331,7 @@ void Scheduler::SetupNextBeginFrameWhenVSyncThrottlingDisabled( |
} |
begin_unthrottled_frame_posted_ = true; |
- impl_task_runner_->PostTask(FROM_HERE, begin_unthrottled_frame_closure_); |
+ task_runner_->PostTask(FROM_HERE, begin_unthrottled_frame_closure_); |
} |
// BeginUnthrottledFrame is used when we aren't throttling frame production. |
@@ -362,7 +365,7 @@ void Scheduler::SetupPollingMechanisms(bool needs_begin_frame) { |
base::TimeDelta delay = begin_impl_frame_args_.IsValid() |
? begin_impl_frame_args_.interval |
: BeginFrameArgs::DefaultInterval(); |
- impl_task_runner_->PostDelayedTask( |
+ task_runner_->PostDelayedTask( |
FROM_HERE, poll_for_draw_triggers_task_.callback(), delay); |
} |
} else { |
@@ -387,9 +390,9 @@ void Scheduler::SetupPollingMechanisms(bool needs_begin_frame) { |
// Since we'd rather get a BeginImplFrame by the normal mechanism, we |
// set the interval to twice the interval from the previous frame. |
advance_commit_state_task_.Reset(advance_commit_state_closure_); |
- impl_task_runner_->PostDelayedTask(FROM_HERE, |
- advance_commit_state_task_.callback(), |
- begin_impl_frame_args_.interval * 2); |
+ task_runner_->PostDelayedTask(FROM_HERE, |
+ advance_commit_state_task_.callback(), |
+ begin_impl_frame_args_.interval * 2); |
} |
} else { |
advance_commit_state_task_.Cancel(); |
@@ -491,7 +494,7 @@ void Scheduler::PostBeginRetroFrameIfNeeded() { |
return; |
begin_retro_frame_posted_ = true; |
- impl_task_runner_->PostTask(FROM_HERE, begin_retro_frame_closure_); |
+ task_runner_->PostTask(FROM_HERE, begin_retro_frame_closure_); |
} |
// BeginImplFrame starts a compositor frame that will wait up until a deadline |
@@ -499,8 +502,8 @@ void Scheduler::PostBeginRetroFrameIfNeeded() { |
// any asynchronous animation and scroll/pinch updates. |
void Scheduler::BeginImplFrame(const BeginFrameArgs& args) { |
TRACE_EVENT1("cc", "Scheduler::BeginImplFrame", "args", args.AsValue()); |
- DCHECK(state_machine_.begin_impl_frame_state() == |
- SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE); |
+ DCHECK_EQ(state_machine_.begin_impl_frame_state(), |
+ SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE); |
DCHECK(state_machine_.HasInitializedOutputSurface()); |
advance_commit_state_task_.Cancel(); |
@@ -567,7 +570,7 @@ void Scheduler::ScheduleBeginImplFrameDeadline(base::TimeTicks deadline) { |
base::TimeDelta delta = deadline - gfx::FrameTime::Now(); |
if (delta <= base::TimeDelta()) |
delta = base::TimeDelta(); |
- impl_task_runner_->PostDelayedTask( |
+ task_runner_->PostDelayedTask( |
FROM_HERE, begin_impl_frame_deadline_task_.callback(), delta); |
} |