| Index: cc/scheduler/scheduler_state_machine.h
|
| diff --git a/cc/scheduler/scheduler_state_machine.h b/cc/scheduler/scheduler_state_machine.h
|
| index 5f24386dd08a153bd60c28986d0879b3695a4521..30debb15bcf4bec54938257f55ae6d3c045c2b8a 100644
|
| --- a/cc/scheduler/scheduler_state_machine.h
|
| +++ b/cc/scheduler/scheduler_state_machine.h
|
| @@ -123,6 +123,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| ACTION_BEGIN_COMPOSITOR_FRAME_SINK_CREATION,
|
| ACTION_PREPARE_TILES,
|
| ACTION_INVALIDATE_COMPOSITOR_FRAME_SINK,
|
| + ACTION_DO_IDLE_WORK,
|
| };
|
| static const char* ActionToString(Action action);
|
|
|
| @@ -131,6 +132,7 @@ class CC_EXPORT SchedulerStateMachine {
|
|
|
| Action NextAction() const;
|
| void WillSendBeginMainFrame();
|
| + void WillDoIdleWork();
|
| void WillCommit(bool commit_had_no_updates);
|
| void WillActivate();
|
| void WillDraw();
|
| @@ -274,6 +276,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool PendingDrawsShouldBeAborted() const;
|
|
|
| bool CouldSendBeginMainFrame() const;
|
| + bool CouldDoIdleWork() const;
|
|
|
| void SetDeferCommits(bool defer_commits);
|
|
|
| @@ -318,6 +321,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool ShouldCommit() const;
|
| bool ShouldPrepareTiles() const;
|
| bool ShouldInvalidateCompositorFrameSink() const;
|
| + bool ShouldDoIdleWork() const;
|
|
|
| void WillDrawInternal();
|
| void WillPerformImplSideInvalidationInternal();
|
| @@ -359,6 +363,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool send_begin_main_frame_funnel_;
|
| bool invalidate_compositor_frame_sink_funnel_;
|
| bool impl_side_invalidation_funnel_;
|
| + bool do_idle_work_funnel_;
|
| // prepare_tiles_funnel_ is "filled" each time PrepareTiles is called
|
| // and "drained" on each BeginImplFrame. If the funnel gets too full,
|
| // we start throttling ACTION_PREPARE_TILES such that we average one
|
|
|