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); |
} |