| Index: cc/scheduler/scheduler.cc
|
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
|
| index 452bbb676b9cbdf92773f0f5568324df685de1f7..851f9762da6ef8b38850fa27876fe9ef91a35669 100644
|
| --- a/cc/scheduler/scheduler.cc
|
| +++ b/cc/scheduler/scheduler.cc
|
| @@ -629,17 +629,18 @@ void Scheduler::ProcessScheduledActions() {
|
| "SchedulerStateMachine",
|
| "state",
|
| AsValue());
|
| - state_machine_.UpdateState(action);
|
| base::AutoReset<SchedulerStateMachine::Action>
|
| mark_inside_action(&inside_action_, action);
|
| switch (action) {
|
| case SchedulerStateMachine::ACTION_NONE:
|
| break;
|
| case SchedulerStateMachine::ACTION_ANIMATE:
|
| + state_machine_.WillAnimate();
|
| client_->ScheduledActionAnimate();
|
| break;
|
| case SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME:
|
| compositor_timing_history_->WillBeginMainFrame();
|
| + state_machine_.WillSendBeginMainFrame();
|
| client_->ScheduledActionSendBeginMainFrame();
|
| break;
|
| case SchedulerStateMachine::ACTION_COMMIT: {
|
| @@ -648,11 +649,14 @@ void Scheduler::ProcessScheduledActions() {
|
| tracked_objects::ScopedTracker tracking_profile4(
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| "461509 Scheduler::ProcessScheduledActions4"));
|
| + bool commit_has_no_updates = false;
|
| + state_machine_.WillCommit(commit_has_no_updates);
|
| client_->ScheduledActionCommit();
|
| break;
|
| }
|
| case SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE:
|
| compositor_timing_history_->WillActivate();
|
| + state_machine_.WillActivate();
|
| client_->ScheduledActionActivateSyncTree();
|
| compositor_timing_history_->DidActivate();
|
| break;
|
| @@ -662,23 +666,34 @@ void Scheduler::ProcessScheduledActions() {
|
| tracked_objects::ScopedTracker tracking_profile6(
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| "461509 Scheduler::ProcessScheduledActions6"));
|
| + bool did_request_swap = true;
|
| + state_machine_.WillDraw(did_request_swap);
|
| DrawAndSwapIfPossible();
|
| break;
|
| }
|
| - case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED:
|
| + case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED: {
|
| + bool did_request_swap = true;
|
| + state_machine_.WillDraw(did_request_swap);
|
| DrawAndSwapForced();
|
| break;
|
| - case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT:
|
| + }
|
| + case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: {
|
| // No action is actually performed, but this allows the state machine to
|
| // advance out of its waiting to draw state without actually drawing.
|
| + bool did_request_swap = false;
|
| + state_machine_.WillDraw(did_request_swap);
|
| break;
|
| + }
|
| case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION:
|
| + state_machine_.WillBeginOutputSurfaceCreation();
|
| client_->ScheduledActionBeginOutputSurfaceCreation();
|
| break;
|
| case SchedulerStateMachine::ACTION_PREPARE_TILES:
|
| + state_machine_.WillPrepareTiles();
|
| client_->ScheduledActionPrepareTiles();
|
| break;
|
| case SchedulerStateMachine::ACTION_INVALIDATE_OUTPUT_SURFACE: {
|
| + state_machine_.WillInvalidateOutputSurface();
|
| client_->ScheduledActionInvalidateOutputSurface();
|
| break;
|
| }
|
|
|