Restore "DevTools: [Audits] Roll Lighthouse to v3.0-beta"

This reverts commit 28abe7802899b037a176426f883c750fec5a6d24.

Bug: 772558, 846211,846551
Change-Id: Ib782b1fb5ee737f31deaa94630fb2bb1021b579b
Reviewed-on: https://chromium-review.googlesource.com/1077597
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Reviewed-by: Patrick Hulce <phulce@chromium.org>
Commit-Queue: Paul Irish <paulirish@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#563121}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8405e18c05b9e5a1c714db1e204de6aaae3be24d
diff --git a/front_end/audits2/Audits2ReportRenderer.js b/front_end/audits2/Audits2ReportRenderer.js
index 0460011..62581c6 100644
--- a/front_end/audits2/Audits2ReportRenderer.js
+++ b/front_end/audits2/Audits2ReportRenderer.js
@@ -7,21 +7,22 @@
  */
 Audits2.ReportRenderer = class extends ReportRenderer {
   /**
-   * Provides empty element for left nav
-   * @override
-   * @returns {!DocumentFragment}
+   * @param {!Element} el Parent element to render the report into.
+   * @param {!ReportRenderer.RunnerResultArtifacts=} artifacts
    */
-  _renderReportNav() {
-    return createDocumentFragment();
-  }
+  static addViewTraceButton(el, artifacts) {
+    if (!artifacts || !artifacts.traces || !artifacts.traces.defaultPass)
+      return;
 
-  /**
-   * @param {!ReportRenderer.ReportJSON} report
-   * @override
-   * @return {!DocumentFragment}
-   */
-  _renderReportHeader(report) {
-    return createDocumentFragment();
+    const defaultPassTrace = artifacts.traces.defaultPass;
+    const timelineButton = UI.createTextButton(Common.UIString('View Trace'), onViewTraceClick, 'view-trace');
+    el.querySelector('.lh-metric-column').appendChild(timelineButton);
+    return el;
+
+    async function onViewTraceClick() {
+      await UI.inspectorView.showPanel('timeline');
+      Timeline.TimelinePanel.instance().loadFromEvents(defaultPassTrace.traceEvents);
+    }
   }
 };
 
@@ -33,48 +34,6 @@
   }
 }
 
-Audits2.CategoryRenderer = class extends CategoryRenderer {
-  /**
-   * @override
-   * @param {!DOM} dom
-   * @param {!DetailsRenderer} detailsRenderer
-   */
-  constructor(dom, detailsRenderer) {
-    super(dom, detailsRenderer);
-    this._defaultPassTrace = null;
-  }
-
-  /**
-   * @param {!ReportRenderer.ReportJSON} lhr
-   */
-  setTraceArtifact(lhr) {
-    if (!lhr.artifacts || !lhr.artifacts.traces || !lhr.artifacts.traces.defaultPass)
-      return;
-    this._defaultPassTrace = lhr.artifacts.traces.defaultPass;
-  }
-
-  /**
-   * @override
-   * @param {!ReportRenderer.CategoryJSON} category
-   * @param {!Object<string, !ReportRenderer.GroupJSON>} groups
-   * @return {!Element}
-   */
-  renderPerformanceCategory(category, groups) {
-    const defaultPassTrace = this._defaultPassTrace;
-    const element = super.renderPerformanceCategory(category, groups);
-    if (!defaultPassTrace)
-      return element;
-
-    const timelineButton = UI.createTextButton(Common.UIString('View Trace'), onViewTraceClick, 'view-trace');
-    element.querySelector('.lh-audit-group').prepend(timelineButton);
-    return element;
-
-    async function onViewTraceClick() {
-      await UI.inspectorView.showPanel('timeline');
-      Timeline.TimelinePanel.instance().loadFromEvents(defaultPassTrace.traceEvents);
-    }
-  }
-};
 
 Audits2.DetailsRenderer = class extends DetailsRenderer {
   /**