Index: cc/scheduler/scheduler.cc |
diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc |
index 37e7c5352b0db92479aa8e49e6c04431cca1a8a7..2f1a42ae61bb5ec8987d461f2ee6b4d48bf61ceb 100644 |
--- a/cc/scheduler/scheduler.cc |
+++ b/cc/scheduler/scheduler.cc |
@@ -49,21 +49,6 @@ BeginFrameSource* SchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource( |
} |
BeginFrameSource* |
-SchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource( |
- Scheduler* scheduler) { |
- TRACE_EVENT1("cc", |
- "Scheduler::Scheduler()", |
- "BackgroundFrameSource", |
- "SyntheticBeginFrameSource"); |
- DCHECK(!(scheduler->background_frame_source_internal_)); |
- scheduler->background_frame_source_internal_ = |
- SyntheticBeginFrameSource::Create( |
- scheduler->task_runner_.get(), scheduler->Now(), |
- scheduler->settings_.background_frame_interval); |
- return scheduler->background_frame_source_internal_.get(); |
-} |
- |
-BeginFrameSource* |
SchedulerFrameSourcesConstructor::ConstructUnthrottledFrameSource( |
Scheduler* scheduler) { |
TRACE_EVENT1("cc", "Scheduler::Scheduler()", "UnthrottledFrameSource", |
@@ -83,13 +68,11 @@ Scheduler::Scheduler( |
SchedulerFrameSourcesConstructor* frame_sources_constructor) |
: frame_source_(), |
primary_frame_source_(NULL), |
- background_frame_source_(NULL), |
primary_frame_source_internal_(external_begin_frame_source.Pass()), |
- background_frame_source_internal_(), |
vsync_observer_(NULL), |
authoritative_vsync_interval_(base::TimeDelta()), |
last_vsync_timebase_(base::TimeTicks()), |
- throttle_frame_production_(scheduler_settings.throttle_frame_production), |
+ throttle_frame_production_(false), |
settings_(scheduler_settings), |
client_(client), |
layer_tree_host_id_(layer_tree_host_id), |
@@ -123,15 +106,12 @@ Scheduler::Scheduler( |
frame_source_->AddSource(primary_frame_source_); |
primary_frame_source_->SetClientReady(); |
- // Background ticking frame source |
- background_frame_source_ = |
- frame_sources_constructor->ConstructBackgroundFrameSource(this); |
- frame_source_->AddSource(background_frame_source_); |
- |
// Unthrottled frame source |
unthrottled_frame_source_ = |
frame_sources_constructor->ConstructUnthrottledFrameSource(this); |
frame_source_->AddSource(unthrottled_frame_source_); |
+ |
+ SetThrottleFrameProduction(scheduler_settings.throttle_frame_production); |
} |
Scheduler::~Scheduler() { |
@@ -174,21 +154,11 @@ void Scheduler::SetCanStart() { |
} |
void Scheduler::UpdateActiveFrameSource() { |
brianderson
2015/04/01 21:58:08
Delete?
mithro-old
2015/04/02 01:03:59
Done.
|
- if (state_machine_.visible()) { |
- if (throttle_frame_production_) { |
- frame_source_->SetActiveSource(primary_frame_source_); |
- } else { |
- frame_source_->SetActiveSource(unthrottled_frame_source_); |
- } |
- } else { |
- frame_source_->SetActiveSource(background_frame_source_); |
jdduke (slow)
2015/04/01 19:21:21
Why not set the active source to null if we're inv
mithro-old
2015/04/02 01:03:59
The approach I took was to make scheduler understa
|
- } |
- ProcessScheduledActions(); |
} |
void Scheduler::SetVisible(bool visible) { |
state_machine_.SetVisible(visible); |
- UpdateActiveFrameSource(); |
+ ProcessScheduledActions(); |
} |
void Scheduler::SetCanDraw(bool can_draw) { |
@@ -208,7 +178,12 @@ void Scheduler::NotifyReadyToDraw() { |
void Scheduler::SetThrottleFrameProduction(bool throttle) { |
throttle_frame_production_ = throttle; |
- UpdateActiveFrameSource(); |
+ if (throttle) { |
+ frame_source_->SetActiveSource(primary_frame_source_); |
+ } else { |
+ frame_source_->SetActiveSource(unthrottled_frame_source_); |
+ } |
+ ProcessScheduledActions(); |
} |
void Scheduler::SetNeedsCommit() { |