| 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 1f377b5a1ca182404c3ca15aa90f604b024b96aa..95e3684401f931892a23836f2a3b317d8d3160dd 100644
|
| --- a/cc/scheduler/scheduler_state_machine_unittest.cc
|
| +++ b/cc/scheduler/scheduler_state_machine_unittest.cc
|
| @@ -49,6 +49,13 @@
|
| state.OnBeginImplFrameIdle(); \
|
| }
|
|
|
| +#define SET_UP_STATE(state) \
|
| + state.SetCanStart(); \
|
| + state.UpdateState(state.NextAction()); \
|
| + state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); \
|
| + state.SetVisible(true); \
|
| + state.SetCanDraw(true);
|
| +
|
| namespace cc {
|
|
|
| namespace {
|
| @@ -210,12 +217,8 @@ TEST(SchedulerStateMachineTest, MainFrameBeforeActivationEnabled) {
|
| scheduler_settings.main_frame_before_activation_enabled = true;
|
| StateMachine state(scheduler_settings);
|
| state.SetCommitState(SchedulerStateMachine::COMMIT_STATE_IDLE);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| + SET_UP_STATE(state)
|
| state.SetNeedsRedraw(false);
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| state.SetNeedsCommit();
|
|
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| @@ -270,11 +273,7 @@ TEST(SchedulerStateMachineTest,
|
| TestFailedDrawForAnimationCheckerboardSetsNeedsCommitAndDoesNotDrawAgain) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
| state.SetNeedsRedraw(true);
|
| EXPECT_TRUE(state.RedrawPending());
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| @@ -306,11 +305,7 @@ TEST(SchedulerStateMachineTest,
|
| TEST(SchedulerStateMachineTest, TestFailedDrawForMissingHighResNeedsCommit) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
| state.SetNeedsRedraw(true);
|
| EXPECT_TRUE(state.RedrawPending());
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| @@ -340,12 +335,7 @@ TEST(SchedulerStateMachineTest,
|
| TestsetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| -
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
| state.SetNeedsRedraw(true);
|
| EXPECT_TRUE(state.RedrawPending());
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| @@ -382,11 +372,7 @@ TEST(SchedulerStateMachineTest,
|
| SchedulerSettings scheduler_settings;
|
| scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = 1;
|
| StateMachine state(scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start a commit.
|
| state.SetNeedsCommit();
|
| @@ -440,11 +426,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| draw_limit;
|
| scheduler_settings.impl_side_painting = true;
|
| StateMachine state(scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start a commit.
|
| state.SetNeedsCommit();
|
| @@ -497,11 +479,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start a draw.
|
| state.SetNeedsRedraw(true);
|
| @@ -540,11 +518,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| TEST(SchedulerStateMachineTest, TestDoestDrawTwiceInSameFrame) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
| state.SetNeedsRedraw(true);
|
|
|
| // Draw the first frame.
|
| @@ -744,12 +718,8 @@ TEST(SchedulerStateMachineTest,
|
| TEST(SchedulerStateMachineTest, TestSetNeedsCommitIsNotLost) {
|
| SchedulerSettings scheduler_settings;
|
| StateMachine state(scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| + SET_UP_STATE(state)
|
| state.SetNeedsCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
|
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
|
|
| @@ -815,11 +785,7 @@ TEST(SchedulerStateMachineTest, TestSetNeedsCommitIsNotLost) {
|
| TEST(SchedulerStateMachineTest, TestFullCycle) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start clean and set commit.
|
| state.SetNeedsCommit();
|
| @@ -865,11 +831,7 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithMainThreadLowLatencyMode) {
|
| SchedulerSettings scheduler_settings;
|
| scheduler_settings.main_thread_should_always_be_low_latency = true;
|
| StateMachine state(scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start clean and set commit.
|
| state.SetNeedsCommit();
|
| @@ -930,11 +892,7 @@ TEST(SchedulerStateMachineTest,
|
| scheduler_settings.main_thread_should_always_be_low_latency = true;
|
| scheduler_settings.impl_side_painting = true;
|
| StateMachine state(scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start clean and set commit.
|
| state.SetNeedsCommit();
|
| @@ -1014,11 +972,7 @@ TEST(SchedulerStateMachineTest,
|
| TEST(SchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start clean and set commit.
|
| state.SetNeedsCommit();
|
| @@ -1084,11 +1038,7 @@ TEST(SchedulerStateMachineTest, TestRequestCommitInvisible) {
|
| TEST(SchedulerStateMachineTest, TestAbortBeginMainFrameBecauseInvisible) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Start clean and set commit.
|
| state.SetNeedsCommit();
|
| @@ -1219,12 +1169,7 @@ TEST(SchedulerStateMachineTest, TestFirstContextCreation) {
|
| TEST(SchedulerStateMachineTest, TestContextLostWhenCompletelyIdle) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| -
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| EXPECT_NE(SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION,
|
| state.NextAction());
|
| @@ -1251,11 +1196,7 @@ TEST(SchedulerStateMachineTest,
|
| // We use impl side painting because it's the more complicated version.
|
| default_scheduler_settings.impl_side_painting = true;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| EXPECT_NE(SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION,
|
| state.NextAction());
|
| @@ -1378,11 +1319,7 @@ TEST(SchedulerStateMachineTest,
|
| TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) {
|
| SchedulerSettings scheduler_settings;
|
| StateMachine state(scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Get a commit in flight.
|
| state.SetNeedsCommit();
|
| @@ -1442,11 +1379,7 @@ TEST(SchedulerStateMachineTest,
|
| TestContextLostWhileCommitInProgressAndAnotherCommitRequested) {
|
| SchedulerSettings scheduler_settings;
|
| StateMachine state(scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Get a commit in flight.
|
| state.SetNeedsCommit();
|
| @@ -1528,11 +1461,7 @@ TEST(SchedulerStateMachineTest,
|
| TEST(SchedulerStateMachineTest, DontDrawBeforeCommitAfterLostOutputSurface) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| state.SetNeedsRedraw(true);
|
|
|
| @@ -1552,11 +1481,7 @@ TEST(SchedulerStateMachineTest,
|
| SchedulerSettings settings;
|
| settings.impl_side_painting = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| state.SetCommitState(
|
| SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT);
|
| @@ -1609,11 +1534,7 @@ TEST(SchedulerStateMachineTest, TestFinishCommitWhenCommitInProgress) {
|
| TEST(SchedulerStateMachineTest, TestInitialActionsWhenContextLost) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
| state.SetNeedsCommit();
|
| state.DidLoseOutputSurface();
|
|
|
| @@ -1636,12 +1557,7 @@ TEST(SchedulerStateMachineTest, TestInitialActionsWhenContextLost) {
|
| TEST(SchedulerStateMachineTest, ReportIfNotDrawing) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| -
|
| - state.SetCanDraw(true);
|
| - state.SetVisible(true);
|
| + SET_UP_STATE(state)
|
| EXPECT_FALSE(state.PendingDrawsShouldBeAborted());
|
|
|
| state.SetCanDraw(false);
|
| @@ -1666,11 +1582,7 @@ TEST(SchedulerStateMachineTest,
|
| SchedulerSettings settings;
|
| settings.impl_side_painting = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // This test mirrors what happens during the first frame of a scroll gesture.
|
| // First we get the input event and a BeginFrame.
|
| @@ -1724,11 +1636,7 @@ TEST(SchedulerStateMachineTest, TestImplLatencyTakesPriority) {
|
| SchedulerSettings settings;
|
| settings.impl_side_painting = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // This test ensures that impl-draws are prioritized over main thread updates
|
| // in prefer impl latency mode.
|
| @@ -1782,11 +1690,7 @@ TEST(SchedulerStateMachineTest,
|
| TestTriggerDeadlineImmediatelyOnLostOutputSurface) {
|
| SchedulerSettings default_scheduler_settings;
|
| StateMachine state(default_scheduler_settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| state.SetNeedsCommit();
|
|
|
| @@ -1806,11 +1710,7 @@ TEST(SchedulerStateMachineTest, TestSetNeedsAnimate) {
|
| SchedulerSettings settings;
|
| settings.impl_side_painting = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Test requesting an animation that, when run, causes us to draw.
|
| state.SetNeedsAnimate();
|
| @@ -1830,11 +1730,7 @@ TEST(SchedulerStateMachineTest, TestAnimateBeforeCommit) {
|
| SchedulerSettings settings;
|
| settings.impl_side_painting = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Check that animations are updated before we start a commit.
|
| state.SetNeedsAnimate();
|
| @@ -1858,11 +1754,7 @@ TEST(SchedulerStateMachineTest, TestAnimateAfterCommitBeforeDraw) {
|
| SchedulerSettings settings;
|
| settings.impl_side_painting = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Check that animations are updated before we start a commit.
|
| state.SetNeedsAnimate();
|
| @@ -1891,11 +1783,7 @@ TEST(SchedulerStateMachineTest, TestSetNeedsAnimateAfterAnimate) {
|
| SchedulerSettings settings;
|
| settings.impl_side_painting = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| // Test requesting an animation after we have already animated during this
|
| // frame.
|
| @@ -1918,11 +1806,7 @@ TEST(SchedulerStateMachineTest, TestForwardBeginFramesToChildren) {
|
| SchedulerSettings settings;
|
| settings.forward_begin_frames_to_children = true;
|
| StateMachine state(settings);
|
| - state.SetCanStart();
|
| - state.UpdateState(state.NextAction());
|
| - state.CreateAndInitializeOutputSurfaceWithActivatedCommit();
|
| - state.SetVisible(true);
|
| - state.SetCanDraw(true);
|
| + SET_UP_STATE(state)
|
|
|
| EXPECT_FALSE(state.BeginFrameNeeded());
|
| state.SetChildrenNeedBeginFrames(true);
|
|
|