| Index: cc/scheduler/scheduler.cc
|
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
|
| index 28f99ed041d7c17466d5400bf100c8a1def0f0c0..316f4b9d46e0e1a8d13dc935998d9b8d813cf4eb 100644
|
| --- a/cc/scheduler/scheduler.cc
|
| +++ b/cc/scheduler/scheduler.cc
|
| @@ -258,9 +258,11 @@ void Scheduler::DidCreateAndInitializeOutputSurface() {
|
| ProcessScheduledActions();
|
| }
|
|
|
| -void Scheduler::NotifyBeginMainFrameStarted() {
|
| +void Scheduler::NotifyBeginMainFrameStarted(
|
| + base::TimeTicks main_thread_start_time) {
|
| TRACE_EVENT0("cc", "Scheduler::NotifyBeginMainFrameStarted");
|
| state_machine_.NotifyBeginMainFrameStarted();
|
| + compositor_timing_history_->BeginMainFrameStarted(main_thread_start_time);
|
| }
|
|
|
| base::TimeTicks Scheduler::LastBeginImplFrameTime() {
|
| @@ -505,6 +507,7 @@ void Scheduler::BeginImplFrame(const BeginFrameArgs& args) {
|
| DCHECK(state_machine_.HasInitializedOutputSurface());
|
|
|
| begin_impl_frame_tracker_.Start(args);
|
| + begin_main_frame_args_ = args;
|
| state_machine_.OnBeginImplFrame();
|
| devtools_instrumentation::DidBeginFrame(layer_tree_host_id_);
|
| client_->WillBeginImplFrame(begin_impl_frame_tracker_.Current());
|
| @@ -643,8 +646,10 @@ void Scheduler::ProcessScheduledActions() {
|
| client_->ScheduledActionAnimate();
|
| break;
|
| case SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME:
|
| - compositor_timing_history_->WillBeginMainFrame();
|
| + compositor_timing_history_->WillBeginMainFrame(
|
| + begin_main_frame_args_.on_critical_path);
|
| state_machine_.WillSendBeginMainFrame();
|
| + // TODO(brianderson): Pass begin_main_frame_args_ directly to client.
|
| client_->ScheduledActionSendBeginMainFrame();
|
| break;
|
| case SchedulerStateMachine::ACTION_COMMIT: {
|
|
|