| Index: cc/scheduler/scheduler.cc
|
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
|
| index f6dfccbaf8637325d5326abdadeabe18ecc08fe7..37811c03ff47c6d4cfb5ab43969fbb2be3d1d0ae 100644
|
| --- a/cc/scheduler/scheduler.cc
|
| +++ b/cc/scheduler/scheduler.cc
|
| @@ -664,21 +664,29 @@ void Scheduler::OnBeginImplFrameDeadline() {
|
| void Scheduler::DrawAndSwapIfPossible() {
|
| bool drawing_with_new_active_tree =
|
| state_machine_.active_tree_needs_first_draw();
|
| + bool main_thread_missed_last_deadline =
|
| + state_machine_.main_thread_missed_last_deadline();
|
| compositor_timing_history_->WillDraw();
|
| state_machine_.WillDraw();
|
| DrawResult result = client_->ScheduledActionDrawAndSwapIfPossible();
|
| state_machine_.DidDraw(result);
|
| - compositor_timing_history_->DidDraw(drawing_with_new_active_tree);
|
| + compositor_timing_history_->DidDraw(
|
| + drawing_with_new_active_tree, main_thread_missed_last_deadline,
|
| + begin_impl_frame_tracker_.DangerousMethodCurrentOrLast().frame_time);
|
| }
|
|
|
| void Scheduler::DrawAndSwapForced() {
|
| bool drawing_with_new_active_tree =
|
| state_machine_.active_tree_needs_first_draw();
|
| + bool main_thread_missed_last_deadline =
|
| + state_machine_.main_thread_missed_last_deadline();
|
| compositor_timing_history_->WillDraw();
|
| state_machine_.WillDraw();
|
| DrawResult result = client_->ScheduledActionDrawAndSwapForced();
|
| state_machine_.DidDraw(result);
|
| - compositor_timing_history_->DidDraw(drawing_with_new_active_tree);
|
| + compositor_timing_history_->DidDraw(
|
| + drawing_with_new_active_tree, main_thread_missed_last_deadline,
|
| + begin_impl_frame_tracker_.DangerousMethodCurrentOrLast().frame_time);
|
| }
|
|
|
| void Scheduler::SetDeferCommits(bool defer_commits) {
|
| @@ -711,7 +719,8 @@ void Scheduler::ProcessScheduledActions() {
|
| break;
|
| case SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME:
|
| compositor_timing_history_->WillBeginMainFrame(
|
| - begin_main_frame_args_.on_critical_path);
|
| + begin_main_frame_args_.on_critical_path,
|
| + begin_main_frame_args_.frame_time);
|
| state_machine_.WillSendBeginMainFrame();
|
| // TODO(brianderson): Pass begin_main_frame_args_ directly to client.
|
| client_->ScheduledActionSendBeginMainFrame(begin_main_frame_args_);
|
|
|