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 <[email protected]>
Reviewed-by: Patrick Hulce <[email protected]>
Commit-Queue: Paul Irish <[email protected]>
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/externs.js b/front_end/externs.js
index 2993f2c..7f815d3 100644
--- a/front_end/externs.js
+++ b/front_end/externs.js
@@ -836,3 +836,164 @@
* @param {function(!Array<*>)} callback
*/
const ResizeObserver = function(callback) {};
+
+
+// Lighthouse Report Renderer
+
+/**
+ * @constructor
+ * @param {!Document} document
+ */
+const DOM = function(document) {};
+
+/**
+ * @constructor
+ * @param {!DOM} dom
+ */
+const ReportRenderer = function(dom) {};
+
+ReportRenderer.prototype = {
+ /**
+ * @param {!ReportRenderer.ReportJSON} report
+ * @param {!Element} container Parent element to render the report into.
+ */
+ renderReport: function(report, container) {},
+
+ /**
+ * @param {!Document|!Element} context
+ */
+ setTemplateContext: function(context) {},
+
+};
+
+/**
+ * @typedef {{
+ * rawValue: (number|boolean|undefined),
+ * id: string,
+ * title: string,
+ * description: string,
+ * explanation: (string|undefined),
+ * errorMessage: (string|undefined),
+ * displayValue: (string|Array<string|number>|undefined),
+ * scoreDisplayMode: string,
+ * error: boolean,
+ * score: (number|null),
+ * details: (!DetailsRenderer.DetailsJSON|undefined),
+ * }}
+ */
+ReportRenderer.AuditResultJSON;
+
+/**
+ * @typedef {{
+ * id: string,
+ * score: (number|null),
+ * weight: number,
+ * group: (string|undefined),
+ * result: ReportRenderer.AuditResultJSON
+ * }}
+ */
+ReportRenderer.AuditJSON;
+
+/**
+ * @typedef {{
+ * title: string,
+ * id: string,
+ * score: (number|null),
+ * description: (string|undefined),
+ * manualDescription: string,
+ * auditRefs: !Array<!ReportRenderer.AuditJSON>
+ * }}
+ */
+ReportRenderer.CategoryJSON;
+
+/**
+ * @typedef {{
+ * title: string,
+ * description: (string|undefined),
+ * }}
+ */
+ReportRenderer.GroupJSON;
+
+/**
+ * @typedef {{
+ * lighthouseVersion: string,
+ * userAgent: string,
+ * fetchTime: string,
+ * timing: {total: number},
+ * requestedUrl: string,
+ * finalUrl: string,
+ * runWarnings: (!Array<string>|undefined),
+ * artifacts: {traces: {defaultPass: {traceEvents: !Array}}},
+ * audits: !Object<string, !ReportRenderer.AuditResultJSON>,
+ * categories: !Object<string, !ReportRenderer.CategoryJSON>,
+ * categoryGroups: !Object<string, !ReportRenderer.GroupJSON>,
+ * }}
+ */
+ReportRenderer.ReportJSON;
+
+/**
+ * @typedef {{
+ * traces: {defaultPass: {traceEvents: !Array}},
+ * }}
+ */
+ReportRenderer.RunnerResultArtifacts;
+
+/**
+ * @typedef {{
+ * lhr: !ReportRenderer.ReportJSON,
+ * artifacts: ReportRenderer.RunnerResultArtifacts,
+ * report: string
+ * }}
+ */
+ReportRenderer.RunnerResult;
+
+
+/**
+ * @constructor
+ * @param {!DOM} dom
+ * @param {!DetailsRenderer} detailsRenderer
+ */
+const CategoryRenderer = function(dom, detailsRenderer) {};
+
+
+/**
+ * @constructor
+ * @param {!DOM} dom
+ */
+const DetailsRenderer = function(dom) {};
+
+DetailsRenderer.prototype = {
+ /**
+ * @param {!DetailsRenderer.NodeDetailsJSON} item
+ * @return {!Element}
+ */
+ renderNode: function(item) {},
+};
+
+/**
+ * @typedef {{
+ * type: string,
+ * value: (string|number|undefined),
+ * summary: (DetailsRenderer.OpportunitySummary|undefined),
+ * granularity: (number|undefined),
+ * displayUnit: (string|undefined)
+ * }}
+ */
+DetailsRenderer.DetailsJSON;
+
+/**
+ * @typedef {{
+ * type: string,
+ * path: (string|undefined),
+ * selector: (string|undefined),
+ * snippet:(string|undefined)
+ * }}
+ */
+DetailsRenderer.NodeDetailsJSON;
+
+/** @typedef {{
+ * wastedMs: (number|undefined),
+ * wastedBytes: (number|undefined),
+ * }}
+ */
+DetailsRenderer.OpportunitySummary;