Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(707)

Unified Diff: third_party/WebKit/Source/devtools/front_end/audits2/Audits2Panel.js

Issue 2856653002: Roll Lighthouse & add error reporting (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/audits2/Audits2Panel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/audits2/Audits2Panel.js b/third_party/WebKit/Source/devtools/front_end/audits2/Audits2Panel.js
index a60b2eae43150e72d9daea4b3a59f4b2df1498cf..603a5c5b2751378bf71057eaf1d8d22b234553e3 100644
--- a/third_party/WebKit/Source/devtools/front_end/audits2/Audits2Panel.js
+++ b/third_party/WebKit/Source/devtools/front_end/audits2/Audits2Panel.js
@@ -61,9 +61,8 @@ Audits2.Audits2Panel = class extends UI.Panel {
*/
_createStatusView(launcherUIElement) {
var statusView = launcherUIElement.createChild('div', 'audits2-status hbox hidden');
- statusView.createChild('span', 'icon');
- this._statusElement = createElement('p');
- statusView.appendChild(this._statusElement);
+ this._statusIcon = statusView.createChild('span', 'icon');
+ this._statusElement = statusView.createChild('p');
this._updateStatus(Common.UIString('Loading...'));
return statusView;
}
@@ -87,6 +86,8 @@ Audits2.Audits2Panel = class extends UI.Panel {
.then(lighthouseResult => {
this._finish(lighthouseResult);
return this._stop();
+ }).catch(err => {
+ if (err instanceof Error) this._renderBugReport(err);
});
}
@@ -147,17 +148,48 @@ Audits2.Audits2Panel = class extends UI.Panel {
this.contentElement.classList.add('show-results');
}
+ /**
+ * @param {!Error} err
+ */
+ _renderBugReport(err) {
+ console.error(err);
+ this._statusElement.textContent = '';
+ this._statusIcon.classList.add('error');
+ this._statusElement.createTextChild(Common.UIString('We ran into an error. '));
+ this._createBugReportLink(err, this._statusElement);
+ }
+
+ /**
+ * @param {!Error} err
+ * @param {!Element} parentElem
+ */
+ _createBugReportLink(err, parentElem) {
+ var baseURI = 'https://github.com/GoogleChrome/lighthouse/issues/new?';
+ var title = encodeURI('title=DevTools Error: ' + err.message.substring(0, 60));
+
+ var qsBody = '';
+ qsBody += '**Error Message**: ' + err.message + '\n';
+ qsBody += '**Stack Trace**:\n ```' + err.stack + '```';
+ var body = '&body=' + encodeURI(qsBody);
+
+ var reportErrorEl = parentElem.createChild('a', 'audits2-link audits2-report-error');
+ reportErrorEl.href = baseURI + title + body;
+ reportErrorEl.textContent = Common.UIString('Report this bug');
+ reportErrorEl.target = '_blank';
+ }
+
/**
* @param {!Element} resultsView
* @param {!ReportRenderer.ReportJSON} lighthouseResult
* @suppressGlobalPropertiesCheck
*/
_renderReport(resultsView, lighthouseResult) {
- var reportContainer = resultsView.createChild('div', 'report-container');
+ var reportContainer = resultsView.createChild('div', 'report-container lh-root');
var dom = new DOM(document);
var detailsRenderer = new DetailsRenderer(dom);
- var renderer = new ReportRenderer(dom, detailsRenderer);
+ var categoryRenderer = new CategoryRenderer(dom, detailsRenderer);
+ var renderer = new Audits2.ReportRenderer(dom, categoryRenderer);
var templatesHTML = Runtime.cachedResources['audits2/lighthouse/templates.html'];
var templatesDOM = new DOMParser().parseFromString(templatesHTML, 'text/html');
@@ -165,7 +197,7 @@ Audits2.Audits2Panel = class extends UI.Panel {
return;
renderer.setTemplateContext(templatesDOM);
- reportContainer.appendChild(renderer.renderReport(lighthouseResult));
+ renderer.renderReport(lighthouseResult, reportContainer);
}
/**
@@ -192,6 +224,28 @@ Audits2.Audits2Panel = class extends UI.Panel {
}
};
+/**
+ * @override
+ */
+Audits2.ReportRenderer = class extends ReportRenderer {
+ /**
+ * Provides empty element for left nav
+ * @override
+ * @returns {!DocumentFragment}
+ */
+ _renderReportNav() {
+ return createDocumentFragment();
+ }
+};
+
+
+class ReportUIFeatures {
+ /**
+ * @param {!ReportRenderer.ReportJSON} report
+ */
+ initFeatures(report) {}
+}
+
/** @typedef {{id: string, configID: string, description: string}} */
Audits2.Audits2Panel.Preset;
« no previous file with comments | « third_party/WebKit/Source/devtools/BUILD.gn ('k') | third_party/WebKit/Source/devtools/front_end/audits2/audits2Panel.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698