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: { |