Index: cc/scheduler/scheduler_state_machine.cc |
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc |
index 74a4f0679f1adb7710278ef4a0bf32171e3db05a..e61d36db63edd32736caa191b4b33090ab4c12a2 100644 |
--- a/cc/scheduler/scheduler_state_machine.cc |
+++ b/cc/scheduler/scheduler_state_machine.cc |
@@ -48,7 +48,8 @@ SchedulerStateMachine::SchedulerStateMachine(const SchedulerSettings& settings) |
impl_latency_takes_priority_(false), |
skip_next_begin_main_frame_to_reduce_latency_(false), |
skip_begin_main_frame_to_reduce_latency_(false), |
- continuous_painting_(false) { |
+ continuous_painting_(false), |
+ impl_latency_takes_priority_on_battery_(false) { |
} |
const char* SchedulerStateMachine::OutputSurfaceStateToString( |
@@ -238,6 +239,8 @@ void SchedulerStateMachine::AsValueInto(base::debug::TracedValue* state, |
state->SetBoolean("skip_next_begin_main_frame_to_reduce_latency", |
skip_next_begin_main_frame_to_reduce_latency_); |
state->SetBoolean("continuous_painting", continuous_painting_); |
+ state->SetBoolean("impl_latency_takes_priority_on_battery", |
+ impl_latency_takes_priority_on_battery_); |
state->EndDictionary(); |
} |
@@ -879,6 +882,11 @@ bool SchedulerStateMachine::ShouldTriggerBeginImplFrameDeadlineEarly() const { |
if (impl_latency_takes_priority_) |
return true; |
+ // If we are on battery power and want to prioritize impl latency because |
+ // we don't trust deadline tasks to execute at the right time. |
+ if (impl_latency_takes_priority_on_battery_) |
+ return true; |
+ |
return false; |
} |