Chromium Code Reviews| 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 ecfb44302c0d5c1047007ee56b5b9ab7a8b276bf..aede4098db36d35c8cf9d1c4085dcd0ccab8a268 100644 |
| --- a/cc/scheduler/scheduler_state_machine_unittest.cc |
| +++ b/cc/scheduler/scheduler_state_machine_unittest.cc |
| @@ -11,11 +11,6 @@ |
| EXPECT_EQ(action, state.NextAction()) << *state.AsValue(); \ |
| if (action == SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE || \ |
| action == SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED) { \ |
| - if (SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW == \ |
| - state.CommitState() && \ |
| - SchedulerStateMachine::OUTPUT_SURFACE_ACTIVE != \ |
| - state.output_surface_state()) \ |
| - return; \ |
| EXPECT_EQ(SchedulerStateMachine::BEGIN_FRAME_STATE_INSIDE_DEADLINE, \ |
| state.begin_frame_state()) \ |
| << *state.AsValue(); \ |
| @@ -38,8 +33,7 @@ const SchedulerStateMachine::BeginFrameState all_begin_frame_states[] = { |
| const SchedulerStateMachine::CommitState all_commit_states[] = { |
| SchedulerStateMachine::COMMIT_STATE_IDLE, |
| SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, |
| - SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, |
| - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, }; |
| + SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, }; |
| // Exposes the protected state fields of the SchedulerStateMachine for testing |
| class StateMachine : public SchedulerStateMachine { |
| @@ -74,7 +68,7 @@ class StateMachine : public SchedulerStateMachine { |
| void SetNeedsForcedRedrawForTimeout(bool b) { |
| forced_redraw_state_ = FORCED_REDRAW_STATE_WAITING_FOR_COMMIT; |
| - commit_state_ = COMMIT_STATE_WAITING_FOR_FIRST_DRAW; |
| + active_tree_needs_first_draw_ = true; |
|
danakj
2013/09/17 17:05:07
Can you explain these? I don't see that the state
brianderson
2013/10/03 14:44:38
You are right. I shouldn't be setting active_tree_
|
| } |
| bool NeedsForcedRedrawForTimeout() const { |
| return forced_redraw_state_ != FORCED_REDRAW_STATE_IDLE; |
| @@ -82,7 +76,7 @@ class StateMachine : public SchedulerStateMachine { |
| void SetNeedsForcedRedrawForReadback() { |
| readback_state_ = READBACK_STATE_WAITING_FOR_DRAW_AND_READBACK; |
| - commit_state_ = COMMIT_STATE_WAITING_FOR_FIRST_DRAW; |
| + active_tree_needs_first_draw_ = true; |
| } |
| bool NeedsForcedRedrawForReadback() const { |
| @@ -407,12 +401,6 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginFrame) { |
| for (size_t j = 0; j < 2; ++j) { |
| bool request_readback = j; |
| - // Skip invalid states |
| - if (request_readback && |
| - (SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW != |
| - all_commit_states[i])) |
| - continue; |
| - |
| StateMachine state(default_scheduler_settings); |
| state.SetCanStart(); |
| state.UpdateState(state.NextAction()); |
| @@ -433,11 +421,7 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginFrame) { |
| SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT) { |
| expected_action = SchedulerStateMachine::ACTION_COMMIT; |
| } else if (request_readback) { |
| - if (all_commit_states[i] == |
| - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW) |
| - expected_action = SchedulerStateMachine::ACTION_DRAW_AND_READBACK; |
| - else |
| - expected_action = SchedulerStateMachine::ACTION_NONE; |
| + expected_action = SchedulerStateMachine::ACTION_DRAW_AND_READBACK; |
| } else { |
| expected_action = |
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE; |
| @@ -523,8 +507,6 @@ TEST(SchedulerStateMachineTest, |
| state.UpdateState(state.NextAction()); |
| state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); |
| - state.SetCommitState( |
| - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); |
| state.SetActiveTreeNeedsFirstDraw(true); |
| state.SetNeedsCommit(); |
| state.SetNeedsRedraw(true); |
| @@ -599,8 +581,7 @@ TEST(SchedulerStateMachineTest, TestsetNeedsCommitIsNotLost) { |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| state.OnBeginFrameDeadline(); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE( |
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| state.DidDrawIfPossibleCompleted(true); |
| @@ -639,8 +620,7 @@ TEST(SchedulerStateMachineTest, TestFullCycle) { |
| // Commit. |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_TRUE(state.NeedsRedraw()); |
| // Expect to do nothing until BeginFrame deadline |
| @@ -690,8 +670,7 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) { |
| // First commit. |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_TRUE(state.NeedsRedraw()); |
| // Expect to do nothing until BeginFrame deadline. |
| @@ -979,8 +958,7 @@ TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) { |
| // We will abort the draw when the output surface is lost if we are |
| // waiting for the first draw to unblock the main thread. |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT); |
| // Expect to be told to begin context recreation, independent of |
| @@ -1046,8 +1024,7 @@ TEST(SchedulerStateMachineTest, |
| // Finish the frame, and commit. |
| state.FinishCommit(); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| // Because the output surface is missing, we expect the draw to abort. |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT); |
| @@ -1107,8 +1084,6 @@ TEST(SchedulerStateMachineTest, TestFinishAllRenderingWhileContextLost) { |
| state.DidLoseOutputSurface(); |
| // Ask a forced redraw for readback and verify it ocurrs. |
| - state.SetCommitState( |
| - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); |
| state.SetNeedsForcedRedrawForReadback(); |
| state.OnBeginFrame(BeginFrameArgs::CreateForTesting()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| @@ -1135,8 +1110,6 @@ TEST(SchedulerStateMachineTest, TestFinishAllRenderingWhileContextLost) { |
| state.NextAction()); |
| // Ask a readback and verify it occurs. |
| - state.SetCommitState( |
| - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); |
| state.SetNeedsForcedRedrawForReadback(); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| @@ -1206,8 +1179,7 @@ TEST(SchedulerStateMachineTest, TestFinishCommitWhenCommitInProgress) { |
| EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.NextAction()); |
| state.UpdateState(state.NextAction()); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT); |
| } |
| @@ -1226,8 +1198,7 @@ TEST(SchedulerStateMachineTest, TestFinishCommitWhenForcedCommitInProgress) { |
| state.FinishCommit(); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| // When the readback interrupts the normal commit, we should not get |
| @@ -1296,8 +1267,7 @@ TEST(SchedulerStateMachineTest, TestImmediateFinishCommit) { |
| state.CommitState()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| state.DidDrawIfPossibleCompleted(true); |
| @@ -1331,8 +1301,7 @@ TEST(SchedulerStateMachineTest, TestImmediateFinishCommitDuringCommit) { |
| state.CommitState()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| state.DidDrawIfPossibleCompleted(true); |
| @@ -1367,8 +1336,7 @@ TEST(SchedulerStateMachineTest, |
| state.CommitState()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| state.DidDrawIfPossibleCompleted(true); |
| @@ -1409,8 +1377,7 @@ TEST(SchedulerStateMachineTest, ImmediateFinishCommitWhileCantDraw) { |
| state.CommitState()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| - EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| - state.CommitState()); |
| + EXPECT_TRUE(state.active_tree_needs_first_draw()); |
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| state.DidDrawIfPossibleCompleted(true); |