| Index: cc/scheduler/scheduler_unittest.cc
|
| diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc
|
| index b59359c03f29bd13bfa2d5f4063ff5d9b295c206..dacc03ce21ae118e553ad78b10324a5e45a3d9e9 100644
|
| --- a/cc/scheduler/scheduler_unittest.cc
|
| +++ b/cc/scheduler/scheduler_unittest.cc
|
| @@ -2272,5 +2272,33 @@ TEST_F(SchedulerTest, SendBeginMainFrameNotExpectedSoon) {
|
| client_->Reset();
|
| }
|
|
|
| +TEST_F(SchedulerTest, AuthoritativeVSyncInterval) {
|
| + SetUpScheduler(true);
|
| +
|
| + base::TimeDelta initial_interval =
|
| + scheduler_->begin_impl_frame_args().interval;
|
| + base::TimeDelta authoritative_interval =
|
| + base::TimeDelta::FromMilliseconds(33);
|
| +
|
| + scheduler_->SetNeedsCommit();
|
| + EXPECT_SCOPED(AdvanceFrame());
|
| +
|
| + EXPECT_EQ(initial_interval, scheduler_->begin_impl_frame_args().interval);
|
| +
|
| + scheduler_->NotifyBeginMainFrameStarted();
|
| + scheduler_->NotifyReadyToCommit();
|
| + task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
|
| +
|
| + scheduler_->SetAuthoritativeVSyncInterval(authoritative_interval);
|
| +
|
| + EXPECT_SCOPED(AdvanceFrame());
|
| +
|
| + // At the next BeginFrame, authoritative interval is used instead of previous
|
| + // interval.
|
| + EXPECT_NE(initial_interval, scheduler_->begin_impl_frame_args().interval);
|
| + EXPECT_EQ(authoritative_interval,
|
| + scheduler_->begin_impl_frame_args().interval);
|
| +}
|
| +
|
| } // namespace
|
| } // namespace cc
|
|
|