| Index: cc/scheduler_state_machine_unittest.cc
|
| diff --git a/cc/scheduler_state_machine_unittest.cc b/cc/scheduler_state_machine_unittest.cc
|
| index a5af78c8dff62050f4f73617d617ff5e5aba2a59..779d1d5acaea4902c4c11d85465c97dbab8ff93b 100644
|
| --- a/cc/scheduler_state_machine_unittest.cc
|
| +++ b/cc/scheduler_state_machine_unittest.cc
|
| @@ -28,9 +28,6 @@ public:
|
| void setNeedsCommit(bool b) { m_needsCommit = b; }
|
| bool needsCommit() const { return m_needsCommit; }
|
|
|
| - void setNeedsForcedCommit(bool b) { m_needsForcedCommit = b; }
|
| - bool needsForcedCommit() const { return m_needsForcedCommit; }
|
| -
|
| void setNeedsRedraw(bool b) { m_needsRedraw = b; }
|
| bool needsRedraw() const { return m_needsRedraw; }
|
|
|
| @@ -826,7 +823,7 @@ TEST(SchedulerStateMachineTest, TestBeginFrameWhenInvisibleAndForceCommit)
|
| state.setCanBeginFrame(true);
|
| state.setVisible(false);
|
| state.setNeedsCommit(true);
|
| - state.setNeedsForcedCommit(true);
|
| + state.setNeedsForcedCommit();
|
| EXPECT_EQ(SchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction());
|
| }
|
|
|
| @@ -836,7 +833,7 @@ TEST(SchedulerStateMachineTest, TestBeginFrameWhenCanBeginFrameFalseAndForceComm
|
| state.setVisible(true);
|
| state.setCanDraw(true);
|
| state.setNeedsCommit(true);
|
| - state.setNeedsForcedCommit(true);
|
| + state.setNeedsForcedCommit();
|
| EXPECT_EQ(SchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction());
|
| }
|
|
|
| @@ -847,7 +844,7 @@ TEST(SchedulerStateMachineTest, TestBeginFrameWhenCommitInProgress)
|
| state.setVisible(false);
|
| state.setCommitState(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS);
|
| state.setNeedsCommit(true);
|
| - state.setNeedsForcedCommit(true);
|
| + state.setNeedsForcedCommit();
|
|
|
| state.beginFrameComplete();
|
| EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.nextAction());
|
| @@ -865,9 +862,66 @@ TEST(SchedulerStateMachineTest, TestBeginFrameWhenContextLost)
|
| state.setVisible(true);
|
| state.setCanDraw(true);
|
| state.setNeedsCommit(true);
|
| - state.setNeedsForcedCommit(true);
|
| + state.setNeedsForcedCommit();
|
| state.didLoseContext();
|
| EXPECT_EQ(SchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction());
|
| }
|
|
|
| +TEST(SchedulerStateMachineTest, TestImmediateBeginFrame)
|
| +{
|
| + StateMachine state;
|
| + state.setCanBeginFrame(true);
|
| + state.setVisible(true);
|
| + state.setCanDraw(true);
|
| +
|
| + // Schedule a forced frame, commit it, draw it.
|
| + state.setNeedsCommit(true);
|
| + state.setNeedsForcedCommit();
|
| + state.updateState(state.nextAction());
|
| + state.beginFrameComplete();
|
| + EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.nextAction());
|
| + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, state.commitState());
|
| + state.updateState(state.nextAction());
|
| +
|
| + state.didEnterVSync();
|
| + EXPECT_EQ(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE, state.nextAction());
|
| + state.updateState(state.nextAction());
|
| + state.didDrawIfPossibleCompleted(true);
|
| + state.didLeaveVSync();
|
| +
|
| + // Should be waiting for the normal begin frame
|
| + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, state.commitState());
|
| +}
|
| +
|
| +TEST(SchedulerStateMachineTest, TestImmediateBeginFrameDuringCommit)
|
| +{
|
| + StateMachine state;
|
| + state.setCanBeginFrame(true);
|
| + state.setVisible(true);
|
| + state.setCanDraw(true);
|
| +
|
| + // Start a normal commit.
|
| + state.setNeedsCommit(true);
|
| + state.updateState(state.nextAction());
|
| +
|
| + // Schedule a forced frame, commit it, draw it.
|
| + state.setNeedsCommit(true);
|
| + state.setNeedsForcedCommit();
|
| + state.updateState(state.nextAction());
|
| + state.beginFrameComplete();
|
| + EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.nextAction());
|
| + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, state.commitState());
|
| + state.updateState(state.nextAction());
|
| +
|
| + state.didEnterVSync();
|
| + EXPECT_EQ(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE, state.nextAction());
|
| + state.updateState(state.nextAction());
|
| + state.didDrawIfPossibleCompleted(true);
|
| + state.didLeaveVSync();
|
| +
|
| + // Should be waiting for the normal begin frame
|
| + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, state.commitState()) << state.toString();
|
| +}
|
| +
|
| +
|
| }
|
|
|