Provide Main Frame latency data to cc

The cc metrics system needs a breakdown of the renderer's BeginMainFrame
overall latency. Plumb a structure through to LocalFrameView and populate
it with the metrics data.

We use DidBeginMainFrame because it invokes the post lifecycle steps that
include the intersection observer step.

Currently missing is code in ProxyMain to set the update layers latency.

Bug: 989138
Change-Id: I6b452a66ac0d752799461db442feb505bcd3df96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1808354
Commit-Queue: Stephen Chenney <[email protected]>
Reviewed-by: Robert Flack <[email protected]>
Reviewed-by: Philip Rogers <[email protected]>
Reviewed-by: Sadrul Chowdhury <[email protected]>
Reviewed-by: Behdad Bakhshinategh <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Cr-Commit-Position: refs/heads/master@{#700749}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index a27150f..32bac12f 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -1545,6 +1545,13 @@
     GetWebWidget()->RecordEndOfFrameMetrics(frame_begin_time);
 }
 
+std::unique_ptr<cc::BeginMainFrameMetrics>
+RenderWidget::GetBeginMainFrameMetrics() {
+  if (GetWebWidget())
+    return GetWebWidget()->GetBeginMainFrameMetrics();
+  return nullptr;
+}
+
 void RenderWidget::BeginUpdateLayers() {
   if (GetWebWidget())
     GetWebWidget()->BeginUpdateLayers();