| 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 4b95f99c8a47d84a745d236770b6b3ab9c1cff5e..68c1068382eb9e1c8ca9b265a161fe96fc9e2183 100644
|
| --- a/cc/scheduler/scheduler_state_machine_unittest.cc
|
| +++ b/cc/scheduler/scheduler_state_machine_unittest.cc
|
| @@ -207,7 +207,7 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_TRUE(state.CommitPending());
|
| }
|
|
|
| -TEST(SchedulerStateMachineTest, TestFailedDrawForMissingHighResDoesNothing) {
|
| +TEST(SchedulerStateMachineTest, TestFailedDrawForMissingHighResNeedsCommit) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| state.SetCanStart();
|
| @@ -238,6 +238,40 @@ TEST(SchedulerStateMachineTest, TestFailedDrawForMissingHighResDoesNothing) {
|
| EXPECT_TRUE(state.CommitPending());
|
| }
|
|
|
| +TEST(SchedulerStateMachineTest, TestFailedDrawForOtherReasonsDoesNothing) {
|
| + SchedulerSettings default_scheduler_settings;
|
| + StateMachine state(default_scheduler_settings);
|
| + state.SetCanStart();
|
| + state.UpdateState(state.NextAction());
|
| + state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| + state.SetVisible(true);
|
| + state.SetCanDraw(true);
|
| + state.SetNeedsRedraw(true);
|
| + EXPECT_TRUE(state.RedrawPending());
|
| + EXPECT_TRUE(state.BeginImplFrameNeeded());
|
| +
|
| + DrawSwapReadbackResult::DrawResult aborts[] = {
|
| + DrawSwapReadbackResult::DRAW_ABORTED_CANT_READBACK,
|
| + DrawSwapReadbackResult::DRAW_ABORTED_CONTEXT_LOST,
|
| + DrawSwapReadbackResult::DRAW_ABORTED_CANT_DRAW, };
|
| + for (size_t i = 0; i < arraysize(aborts); ++i) {
|
| + state.SetNeedsRedraw(true);
|
| + state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting());
|
| +
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| + state.OnBeginImplFrameDeadline();
|
| + EXPECT_ACTION_UPDATE_STATE(
|
| + SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| + EXPECT_FALSE(state.RedrawPending());
|
| + EXPECT_FALSE(state.CommitPending());
|
| +
|
| + state.DidDrawIfPossibleCompleted(aborts[i]);
|
| + EXPECT_FALSE(state.RedrawPending());
|
| + EXPECT_FALSE(state.CommitPending());
|
| + }
|
| +}
|
| +
|
| TEST(SchedulerStateMachineTest,
|
| TestsetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw) {
|
| SchedulerSettings default_scheduler_settings;
|
|
|