| Index: cc/scheduler/compositor_timing_history.cc
|
| diff --git a/cc/scheduler/compositor_timing_history.cc b/cc/scheduler/compositor_timing_history.cc
|
| index b1a9837020df43b9c70e09107d9d05dd68e5c1e0..704380d30af999a33c60aab3ca6378cfc38d8e98 100644
|
| --- a/cc/scheduler/compositor_timing_history.cc
|
| +++ b/cc/scheduler/compositor_timing_history.cc
|
| @@ -26,6 +26,7 @@ class CompositorTimingHistory::UMAReporter {
|
| virtual void AddDrawInterval(base::TimeDelta interval) = 0;
|
|
|
| // Latency measurements
|
| + virtual void AddBeginMainFrameLatency(base::TimeDelta delta) = 0;
|
| virtual void AddBeginMainFrameQueueDurationCriticalDuration(
|
| base::TimeDelta duration) = 0;
|
| virtual void AddBeginMainFrameQueueDurationNotCriticalDuration(
|
| @@ -197,6 +198,11 @@ class RendererUMAReporter : public CompositorTimingHistory::UMAReporter {
|
| UMA_HISTOGRAM_CUSTOM_TIMES_VSYNC_ALIGNED(
|
| "Scheduling.Renderer.MainAndImplFrameTimeDelta", delta);
|
| }
|
| +
|
| + void AddBeginMainFrameLatency(base::TimeDelta delta) override {
|
| + UMA_HISTOGRAM_CUSTOM_TIMES_DURATION(
|
| + "Scheduling.Renderer.VsyncToBeginMainFrameLatency", delta);
|
| + }
|
| };
|
|
|
| class BrowserUMAReporter : public CompositorTimingHistory::UMAReporter {
|
| @@ -274,6 +280,11 @@ class BrowserUMAReporter : public CompositorTimingHistory::UMAReporter {
|
| UMA_HISTOGRAM_CUSTOM_TIMES_VSYNC_ALIGNED(
|
| "Scheduling.Browser.MainAndImplFrameTimeDelta", delta);
|
| }
|
| +
|
| + void AddBeginMainFrameLatency(base::TimeDelta delta) override {
|
| + UMA_HISTOGRAM_CUSTOM_TIMES_DURATION(
|
| + "Scheduling.Browser.VsyncToBeginMainFrameLatency", delta);
|
| + }
|
| };
|
|
|
| class NullUMAReporter : public CompositorTimingHistory::UMAReporter {
|
| @@ -297,6 +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 {}
|
| };
|
|
|
| } // namespace
|
| @@ -500,6 +512,9 @@ void CompositorTimingHistory::WillBeginMainFrame(
|
| begin_main_frame_sent_time_ = Now();
|
| begin_main_frame_frame_time_ = main_frame_time;
|
|
|
| + uma_reporter_->AddBeginMainFrameLatency(begin_main_frame_sent_time_ -
|
| + begin_main_frame_frame_time_);
|
| +
|
| did_send_begin_main_frame_ = true;
|
| SetBeginMainFrameNeededContinuously(true);
|
| }
|
|
|