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 40689811278d88fff5fb29b7d73968bf3d27a6ce..d58f6e9a720b78c4c9c2b195781a9ab35622704a 100644 |
--- a/cc/scheduler/scheduler_state_machine_unittest.cc |
+++ b/cc/scheduler/scheduler_state_machine_unittest.cc |
@@ -171,12 +171,6 @@ TEST(SchedulerStateMachineTest, BeginFrameNeeded) { |
state.SetNeedsAnimateForTest(false); |
EXPECT_FALSE(state.BeginFrameNeeded()); |
- // Background tick for animations. |
- state.SetVisible(false); |
- state.SetNeedsRedraw(false); |
- state.SetNeedsAnimateForTest(true); |
- EXPECT_TRUE(state.BeginFrameNeeded()); |
- |
// Proactively request BeginFrames when commit is pending. |
state.SetVisible(true); |
state.SetNeedsRedraw(false); |
@@ -1556,6 +1550,25 @@ TEST(SchedulerStateMachineTest, |
EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT); |
} |
+TEST(SchedulerStateMachineTest, TestNoBeginFrameNeededWhenInvisible) { |
+ SchedulerSettings default_scheduler_settings; |
+ StateMachine state(default_scheduler_settings); |
+ state.SetCanStart(); |
+ state.UpdateState(state.NextAction()); |
+ state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); |
+ state.SetVisible(true); |
+ |
+ EXPECT_FALSE(state.BeginFrameNeeded()); |
+ state.SetNeedsRedraw(true); |
+ EXPECT_TRUE(state.BeginFrameNeeded()); |
+ |
+ state.SetVisible(false); |
+ EXPECT_FALSE(state.BeginFrameNeeded()); |
+ |
+ state.SetVisible(true); |
+ EXPECT_TRUE(state.BeginFrameNeeded()); |
+} |
+ |
TEST(SchedulerStateMachineTest, TestNoBeginMainFrameWhenInvisible) { |
SchedulerSettings default_scheduler_settings; |
StateMachine state(default_scheduler_settings); |
@@ -1565,6 +1578,14 @@ TEST(SchedulerStateMachineTest, TestNoBeginMainFrameWhenInvisible) { |
state.SetVisible(false); |
state.SetNeedsCommit(); |
EXPECT_ACTION(SchedulerStateMachine::ACTION_NONE); |
+ EXPECT_FALSE(state.BeginFrameNeeded()); |
+ |
+ // When become visible again, the needs commit should still be pending. |
+ state.SetVisible(true); |
+ EXPECT_TRUE(state.BeginFrameNeeded()); |
+ state.OnBeginImplFrame(); |
+ EXPECT_ACTION_UPDATE_STATE( |
+ SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); |
} |
TEST(SchedulerStateMachineTest, TestFinishCommitWhenCommitInProgress) { |