Chromium Code Reviews| Index: cc/scheduler/compositor_timing_history.cc |
| diff --git a/cc/scheduler/compositor_timing_history.cc b/cc/scheduler/compositor_timing_history.cc |
| index 0e88a8af073c93f361fa0adcf08266e661f4a9c1..dda74e75da773d41653dc63cdd126df322e5ed76 100644 |
| --- a/cc/scheduler/compositor_timing_history.cc |
| +++ b/cc/scheduler/compositor_timing_history.cc |
| @@ -26,7 +26,7 @@ class CompositorTimingHistory::UMAReporter { |
| virtual void AddDrawInterval(base::TimeDelta interval) = 0; |
| // Latency measurements |
| - virtual void AddBeginMainFrameLatency(base::TimeDelta delta) = 0; |
| + virtual void AddBeginImplFrameLatency(base::TimeDelta delta) = 0; |
| virtual void AddBeginMainFrameQueueDurationCriticalDuration( |
| base::TimeDelta duration) = 0; |
| virtual void AddBeginMainFrameQueueDurationNotCriticalDuration( |
| @@ -199,9 +199,9 @@ class RendererUMAReporter : public CompositorTimingHistory::UMAReporter { |
| "Scheduling.Renderer.MainAndImplFrameTimeDelta", delta); |
| } |
| - void AddBeginMainFrameLatency(base::TimeDelta delta) override { |
| + void AddBeginImplFrameLatency(base::TimeDelta delta) override { |
|
brianderson
2017/03/16 19:11:56
Nit: Here and below, can you put the method in the
stanisc
2017/03/16 20:45:48
Done.
|
| UMA_HISTOGRAM_CUSTOM_TIMES_DURATION( |
| - "Scheduling.Renderer.VsyncToBeginMainFrameLatency", delta); |
| + "Scheduling.Renderer.VsyncToBeginImplFrameLatency", delta); |
| } |
| }; |
| @@ -281,9 +281,9 @@ class BrowserUMAReporter : public CompositorTimingHistory::UMAReporter { |
| "Scheduling.Browser.MainAndImplFrameTimeDelta", delta); |
| } |
| - void AddBeginMainFrameLatency(base::TimeDelta delta) override { |
| + void AddBeginImplFrameLatency(base::TimeDelta delta) override { |
| UMA_HISTOGRAM_CUSTOM_TIMES_DURATION( |
| - "Scheduling.Browser.VsyncToBeginMainFrameLatency", delta); |
| + "Scheduling.Browser.VsyncToBeginImplFrameLatency", delta); |
| } |
| }; |
| @@ -308,7 +308,7 @@ class NullUMAReporter : public CompositorTimingHistory::UMAReporter { |
| void AddSubmitToAckLatency(base::TimeDelta duration) override {} |
| void AddSubmitAckWasFast(bool was_fast) override {} |
| void AddMainAndImplFrameTimeDelta(base::TimeDelta delta) override {} |
| - void AddBeginMainFrameLatency(base::TimeDelta delta) override {} |
| + void AddBeginImplFrameLatency(base::TimeDelta delta) override {} |
| }; |
| } // namespace |
| @@ -467,13 +467,18 @@ void CompositorTimingHistory::DidCreateAndInitializeCompositorFrameSink() { |
| } |
| void CompositorTimingHistory::WillBeginImplFrame( |
| - bool new_active_tree_is_likely) { |
| + bool new_active_tree_is_likely, |
| + base::TimeTicks frame_time, |
| + BeginFrameArgs::BeginFrameArgsType frame_type) { |
| // The check for whether a BeginMainFrame was sent anytime between two |
| // BeginImplFrames protects us from not detecting a fast main thread that |
| // does all it's work and goes idle in between BeginImplFrames. |
| // For example, this may happen if an animation is being driven with |
| // setInterval(17) or if input events just happen to arrive in the |
| // middle of every frame. |
| + if (frame_type == BeginFrameArgs::NORMAL) |
| + uma_reporter_->AddBeginImplFrameLatency(Now() - frame_time); |
| + |
| if (!new_active_tree_is_likely && !did_send_begin_main_frame_) { |
| SetBeginMainFrameNeededContinuously(false); |
| SetBeginMainFrameCommittingContinuously(false); |
| @@ -504,8 +509,7 @@ void CompositorTimingHistory::BeginImplFrameNotExpectedSoon() { |
| void CompositorTimingHistory::WillBeginMainFrame( |
| bool on_critical_path, |
| - base::TimeTicks main_frame_time, |
| - BeginFrameArgs::BeginFrameArgsType frame_type) { |
| + base::TimeTicks main_frame_time) { |
| DCHECK_EQ(base::TimeTicks(), begin_main_frame_sent_time_); |
| DCHECK_EQ(base::TimeTicks(), begin_main_frame_frame_time_); |
| @@ -513,11 +517,6 @@ void CompositorTimingHistory::WillBeginMainFrame( |
| begin_main_frame_sent_time_ = Now(); |
| begin_main_frame_frame_time_ = main_frame_time; |
| - if (frame_type == BeginFrameArgs::NORMAL) { |
| - uma_reporter_->AddBeginMainFrameLatency(begin_main_frame_sent_time_ - |
| - begin_main_frame_frame_time_); |
| - } |
| - |
| did_send_begin_main_frame_ = true; |
| SetBeginMainFrameNeededContinuously(true); |
| } |