| Index: cc/scheduler/scheduler_state_machine_unittest.cc
|
| diff --git a/cc/scheduler/scheduler_state_machine_unittest.cc b/cc/scheduler/scheduler_state_machine_unittest.cc
|
| index 1f377b5a1ca182404c3ca15aa90f604b024b96aa..547b8221814747210a50633aca94eb1685fad13e 100644
|
| --- a/cc/scheduler/scheduler_state_machine_unittest.cc
|
| +++ b/cc/scheduler/scheduler_state_machine_unittest.cc
|
| @@ -170,6 +170,36 @@ TEST(SchedulerStateMachineTest, TestNextActionBeginsMainFrameIfNeeded) {
|
| state.OnBeginImplFrameDeadline();
|
| }
|
|
|
| + // If commit requested but can_draw is false, begin a main frame.
|
| + {
|
| + SchedulerSettings scheduler_settings;
|
| + // This only happens when proactive begin frames are false.
|
| + scheduler_settings.using_synchronous_renderer_compositor = true;
|
| + StateMachine state(scheduler_settings);
|
| + state.SetCanStart();
|
| + state.SetNeedsRedraw(false);
|
| + state.SetVisible(true);
|
| + state.SetNeedsCommit();
|
| + state.SetCanDraw(false);
|
| +
|
| + EXPECT_ACTION(SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION);
|
| + state.UpdateState(state.NextAction());
|
| + state.DidCreateAndInitializeOutputSurface();
|
| +
|
| + // Expect nothing to happen until the IMPL frame comes in.
|
| + EXPECT_COMMIT_STATE(SchedulerStateMachine::COMMIT_STATE_IDLE);
|
| + EXPECT_IMPL_FRAME_STATE(SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE);
|
| + EXPECT_ACTION(SchedulerStateMachine::ACTION_NONE);
|
| +
|
| + // Despite not being able to draw, we do need a BeginImplFrame.
|
| + EXPECT_TRUE(state.BeginFrameNeeded());
|
| +
|
| + state.OnBeginImplFrame(
|
| + CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE));
|
| + EXPECT_ACTION_UPDATE_STATE(
|
| + SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| + }
|
| +
|
| // If commit requested, begin a main frame.
|
| {
|
| StateMachine state(default_scheduler_settings);
|
|
|