| Index: Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp | 
| =================================================================== | 
| --- Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp	(revision 114975) | 
| +++ Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp	(working copy) | 
| @@ -75,6 +75,7 @@ | 
| { | 
| StateMachine state; | 
| state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_IDLE); | 
| +        state.setCanBeginFrame(true); | 
| state.setNeedsRedraw(false); | 
| state.setNeedsCommit(false); | 
| state.setUpdateMoreResourcesPending(false); | 
| @@ -89,10 +90,30 @@ | 
| EXPECT_EQ(CCSchedulerStateMachine::ACTION_NONE, state.nextAction()); | 
| } | 
|  | 
| +    // If commit requested but canBeginFrame is still false, do nothing. | 
| +    { | 
| +        StateMachine state; | 
| +        state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_IDLE); | 
| +        state.setNeedsRedraw(false); | 
| +        state.setNeedsCommit(false); | 
| +        state.setUpdateMoreResourcesPending(false); | 
| +        state.setVisible(true); | 
| + | 
| +        EXPECT_FALSE(state.vsyncCallbackNeeded()); | 
| + | 
| +        state.didLeaveVSync(); | 
| +        EXPECT_EQ(CCSchedulerStateMachine::ACTION_NONE, state.nextAction()); | 
| +        EXPECT_FALSE(state.vsyncCallbackNeeded()); | 
| +        state.didEnterVSync(); | 
| +        EXPECT_EQ(CCSchedulerStateMachine::ACTION_NONE, state.nextAction()); | 
| +    } | 
| + | 
| + | 
| // If commit requested, begin a frame | 
| { | 
| StateMachine state; | 
| state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_IDLE); | 
| +        state.setCanBeginFrame(true); | 
| state.setNeedsRedraw(false); | 
| state.setNeedsCommit(true); | 
| state.setUpdateMoreResourcesPending(false); | 
| @@ -103,6 +124,7 @@ | 
| // Begin the frame, make sure needsCommit and commitState update correctly. | 
| { | 
| StateMachine state; | 
| +        state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
| state.updateState(CCSchedulerStateMachine::ACTION_BEGIN_FRAME); | 
| EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, state.commitState()); | 
| @@ -122,6 +144,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain) | 
| { | 
| CCSchedulerStateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
| state.setNeedsRedraw(); | 
| EXPECT_TRUE(state.redrawPending()); | 
| @@ -146,6 +169,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestSetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw) | 
| { | 
| CCSchedulerStateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
| state.setNeedsRedraw(); | 
| EXPECT_TRUE(state.redrawPending()); | 
| @@ -173,6 +197,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestCommitAfterFailedDrawAllowsDrawInSameFrame) | 
| { | 
| CCSchedulerStateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Start a commit. | 
| @@ -212,6 +237,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestCommitAfterFailedAndSuccessfulDrawDoesNotAllowDrawInSameFrame) | 
| { | 
| CCSchedulerStateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Start a commit. | 
| @@ -262,6 +288,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestFailedDrawIsRetriedNextVSync) | 
| { | 
| CCSchedulerStateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Start a draw. | 
| @@ -447,6 +474,7 @@ | 
| { | 
| StateMachine state; | 
| state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); | 
| +    state.setCanBeginFrame(true); | 
| state.setNeedsCommit(true); | 
| state.setNeedsRedraw(true); | 
| state.setUpdateMoreResourcesPending(false); | 
| @@ -590,6 +618,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestSetNeedsCommitIsNotLost) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setNeedsCommit(true); | 
| state.setVisible(true); | 
|  | 
| @@ -632,6 +661,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestFullCycle) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Start clean and set commit. | 
| @@ -679,6 +709,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Start clean and set commit. | 
| @@ -737,6 +768,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestGoesInvisibleMidCommit) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Start clean and set commit. | 
| @@ -782,6 +814,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestContextLostWhenCompletelyIdle) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| state.didLoseContext(); | 
| @@ -803,6 +836,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestContextLostWhenIdleAndCommitRequestedWhileRecreating) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| state.didLoseContext(); | 
| @@ -838,6 +872,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestContextLostWhileCommitInProgress) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Get a commit in flight. | 
| @@ -878,6 +913,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestContextLostWhileCommitInProgressAndAnotherCommitRequested) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
|  | 
| // Get a commit in flight. | 
| @@ -956,6 +992,16 @@ | 
| TEST(CCSchedulerStateMachineTest, TestBeginFrameWhenInvisibleAndForceCommit) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| +    state.setVisible(false); | 
| +    state.setNeedsCommit(true); | 
| +    state.setNeedsForcedCommit(true); | 
| +    EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction()); | 
| +} | 
| + | 
| +TEST(CCSchedulerStateMachineTest, TestBeginFrameWhenCanBeginFrameFalseAndForceCommit) | 
| +{ | 
| +    StateMachine state; | 
| state.setVisible(true); | 
| state.setNeedsCommit(true); | 
| state.setNeedsForcedCommit(true); | 
| @@ -965,6 +1011,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestBeginFrameWhenCommitInProgress) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(false); | 
| state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS); | 
| state.setNeedsCommit(true); | 
| @@ -986,6 +1033,7 @@ | 
| TEST(CCSchedulerStateMachineTest, TestBeginFrameWhenContextLost) | 
| { | 
| StateMachine state; | 
| +    state.setCanBeginFrame(true); | 
| state.setVisible(true); | 
| state.setNeedsCommit(true); | 
| state.setNeedsForcedCommit(true); | 
|  |