Index: cc/scheduler/scheduler_unittest.cc |
diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc |
index d515648bdb476bfd0417e739a7e55ec769c517c1..af8bda884320dace3ea17ae178dad5ca61b9e6c3 100644 |
--- a/cc/scheduler/scheduler_unittest.cc |
+++ b/cc/scheduler/scheduler_unittest.cc |
@@ -256,9 +256,20 @@ class SchedulerTest : public testing::Test { |
protected: |
TestScheduler* CreateScheduler() { |
- if (scheduler_settings_.use_external_begin_frame_source) { |
+ BeginFrameSource* frame_source; |
+ if (!scheduler_settings_.throttle_frame_production) { |
+ unthrottled_frame_source_ = TestBackToBackBeginFrameSource::Create( |
+ now_src_.get(), task_runner_.get()); |
+ frame_source = unthrottled_frame_source_.get(); |
+ } else if (scheduler_settings_.use_external_begin_frame_source) { |
sunnyps
2016/03/09 00:14:56
use_external_begin_frame_source doesn't need to be
enne (OOO)
2016/03/09 01:17:04
It's a little bit more involved. There's a layer
|
fake_external_begin_frame_source_.reset( |
new FakeExternalBeginFrameSource(client_.get())); |
+ frame_source = fake_external_begin_frame_source_.get(); |
+ } else { |
+ synthetic_frame_source_ = TestSyntheticBeginFrameSource::Create( |
+ now_src_.get(), task_runner_.get(), |
+ BeginFrameArgs::DefaultInterval()); |
+ frame_source = synthetic_frame_source_.get(); |
} |
scoped_ptr<FakeCompositorTimingHistory> fake_compositor_timing_history = |
@@ -266,10 +277,10 @@ class SchedulerTest : public testing::Test { |
scheduler_settings_.using_synchronous_renderer_compositor); |
fake_compositor_timing_history_ = fake_compositor_timing_history.get(); |
- scheduler_ = TestScheduler::Create( |
- now_src_.get(), client_.get(), scheduler_settings_, 0, |
- task_runner_.get(), fake_external_begin_frame_source_.get(), |
- std::move(fake_compositor_timing_history)); |
+ scheduler_.reset( |
+ new TestScheduler(now_src_.get(), client_.get(), scheduler_settings_, 0, |
+ task_runner_.get(), frame_source, |
+ std::move(fake_compositor_timing_history))); |
DCHECK(scheduler_); |
client_->set_scheduler(scheduler_.get()); |
@@ -429,6 +440,8 @@ class SchedulerTest : public testing::Test { |
scoped_ptr<base::SimpleTestTickClock> now_src_; |
scoped_refptr<OrderedSimpleTaskRunner> task_runner_; |
scoped_ptr<FakeExternalBeginFrameSource> fake_external_begin_frame_source_; |
+ scoped_ptr<TestSyntheticBeginFrameSource> synthetic_frame_source_; |
+ scoped_ptr<TestBackToBackBeginFrameSource> unthrottled_frame_source_; |
SchedulerSettings scheduler_settings_; |
scoped_ptr<FakeSchedulerClient> client_; |
scoped_ptr<TestScheduler> scheduler_; |
@@ -3446,7 +3459,9 @@ TEST_F(SchedulerTest, AuthoritativeVSyncInterval) { |
scheduler_->NotifyReadyToActivate(); |
task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true)); |
- scheduler_->SetAuthoritativeVSyncInterval(authoritative_interval); |
+ // Test changing the interval on the frame source external to the scheduler. |
+ synthetic_frame_source_->OnUpdateVSyncParameters(now_src_->NowTicks(), |
+ authoritative_interval); |
EXPECT_SCOPED(AdvanceFrame()); |