| 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 3dfe9341b79851e8a72aeeabab95373083dfad15..34db8cfdbec63f3c516f6cfc8f6b55ce0e4de15d 100644
|
| --- a/cc/scheduler/scheduler_state_machine_unittest.cc
|
| +++ b/cc/scheduler/scheduler_state_machine_unittest.cc
|
| @@ -240,6 +240,8 @@ TEST(SchedulerStateMachineTest, MainFrameBeforeDrawDisabled) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_EQ(state.CommitState(), SchedulerStateMachine::COMMIT_STATE_IDLE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| @@ -312,6 +314,8 @@ TEST(SchedulerStateMachineTest, MainFrameBeforeActivationEnabled) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_EQ(state.CommitState(), SchedulerStateMachine::COMMIT_STATE_IDLE);
|
| @@ -337,14 +341,15 @@ TEST(SchedulerStateMachineTest,
|
| // We're drawing now.
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| EXPECT_FALSE(state.RedrawPending());
|
| EXPECT_FALSE(state.CommitPending());
|
|
|
| // Failing the draw makes us require a commit.
|
| - state.DidDrawIfPossibleCompleted(
|
| - DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| + state.DidDrawIfPossibleCompleted(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| @@ -371,13 +376,14 @@ TEST(SchedulerStateMachineTest, TestFailedDrawForMissingHighResNeedsCommit) {
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_FALSE(state.RedrawPending());
|
| EXPECT_FALSE(state.CommitPending());
|
|
|
| // Missing high res content requires a commit (but not a redraw)
|
| - state.DidDrawIfPossibleCompleted(
|
| - DrawSwapReadbackResult::DRAW_ABORTED_MISSING_HIGH_RES_CONTENT);
|
| + state.DidDrawIfPossibleCompleted(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT);
|
| state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| @@ -406,6 +412,8 @@ TEST(SchedulerStateMachineTest,
|
| // We're drawing now.
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_FALSE(state.RedrawPending());
|
| EXPECT_FALSE(state.CommitPending());
|
| @@ -416,8 +424,7 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Failing the draw for animation checkerboards makes us require a commit.
|
| - state.DidDrawIfPossibleCompleted(
|
| - DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| + state.DidDrawIfPossibleCompleted(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| @@ -455,8 +462,7 @@ void TestFailedDrawsEventuallyForceDrawAfterNextCommit(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
|
|
| // Fail the draw.
|
| - state.DidDrawIfPossibleCompleted(
|
| - DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| + state.DidDrawIfPossibleCompleted(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| EXPECT_TRUE(state.RedrawPending());
|
| @@ -482,6 +488,8 @@ void TestFailedDrawsEventuallyForceDrawAfterNextCommit(
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| }
|
|
|
| TEST(SchedulerStateMachineTest,
|
| @@ -529,10 +537,8 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
|
|
| // Fail the draw enough times to force a redraw,
|
| // then once more for good measure.
|
| - for (int i = 0; i < draw_limit + 1; ++i) {
|
| - state.DidDrawIfPossibleCompleted(
|
| - DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - }
|
| + for (int i = 0; i < draw_limit + 1; ++i)
|
| + state.DidDrawIfPossibleCompleted(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| EXPECT_TRUE(state.RedrawPending());
|
| @@ -554,10 +560,8 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
|
|
| // After failing additional draws, we should still be in a forced
|
| // redraw, but not back in WAITING_FOR_COMMIT.
|
| - for (int i = 0; i < draw_limit + 1; ++i) {
|
| - state.DidDrawIfPossibleCompleted(
|
| - DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - }
|
| + for (int i = 0; i < draw_limit + 1; ++i)
|
| + state.DidDrawIfPossibleCompleted(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_TRUE(state.RedrawPending());
|
| EXPECT_TRUE(state.ForcedRedrawState() ==
|
| SchedulerStateMachine::FORCED_REDRAW_STATE_WAITING_FOR_ACTIVATION);
|
| @@ -584,8 +588,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
|
|
| // Failing the draw for animation checkerboards makes us require a commit.
|
| - state.DidDrawIfPossibleCompleted(
|
| - DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| + state.DidDrawIfPossibleCompleted(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -602,6 +605,8 @@ TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -624,7 +629,9 @@ TEST(SchedulerStateMachineTest, TestDoestDrawTwiceInSameFrame) {
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Before the next BeginImplFrame, set needs redraw again.
|
| @@ -642,7 +649,9 @@ TEST(SchedulerStateMachineTest, TestDoestDrawTwiceInSameFrame) {
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // We just swapped, so we should proactively request another BeginImplFrame.
|
| @@ -889,7 +898,9 @@ void TestSetNeedsCommitIsNotLost(bool main_frame_before_draw_enabled) {
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
| if (!main_frame_before_draw_enabled) {
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| @@ -947,7 +958,9 @@ TEST(SchedulerStateMachineTest, TestFullCycle) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
|
|
| // Should be synchronized, no draw needed, no action needed.
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -999,7 +1012,9 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
|
|
| // Should be synchronized, no draw needed, no action needed.
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -1110,6 +1125,8 @@ TEST(SchedulerStateMachineTest, AbortBeginMainFrameAndCancelCommit) {
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
|
|
| // Verify another commit doesn't start on another frame either.
|
| EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_IDLE, state.CommitState());
|
| @@ -1266,6 +1283,8 @@ TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) {
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Cause a lost context while the BeginMainFrame is in flight.
|
| @@ -1331,6 +1350,8 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Cause a lost context while the BeginMainFrame is in flight.
|
| @@ -1389,6 +1410,8 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1661,6 +1684,8 @@ void TestForceCommitWhenReplacementActivationInProgress(
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| if (!settings.main_frame_before_draw_enabled) {
|
| // New replacement commit is scheduled.
|
| EXPECT_ACTION_UPDATE_STATE(
|
| @@ -1700,6 +1725,8 @@ void TestForceCommitWhenReplacementActivationInProgress(
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_EQ(SchedulerStateMachine::READBACK_STATE_IDLE, state.readback_state());
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
| @@ -1772,6 +1799,8 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + state.DidSwapBuffers();
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_NONE);
|
|
|
| @@ -1841,7 +1870,9 @@ TEST(SchedulerStateMachineTest, TestImmediateFinishCommit) {
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
|
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
|
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| @@ -1877,7 +1908,9 @@ TEST(SchedulerStateMachineTest, TestImmediateFinishCommitDuringCommit) {
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
|
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Should be waiting for the normal BeginMainFrame.
|
| @@ -1911,7 +1944,9 @@ TEST(SchedulerStateMachineTest, ImmediateBeginMainFrameAbortedWhileInvisible) {
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
|
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Should be waiting for BeginMainFrame.
|
| @@ -1952,7 +1987,9 @@ TEST(SchedulerStateMachineTest, ImmediateFinishCommitWhileCantDraw) {
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
|
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK);
|
| - state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS);
|
| + state.DidSwapBuffers();
|
| + state.DidDrawIfPossibleCompleted(DRAW_SUCCESS);
|
| + state.DidSwapBuffersComplete();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
|
|