Files
react-native-devtools-frontend/front_end/audits2_worker/Audits2Service.js
T
Paul Irish 8f1e33d0b0 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
2018-05-31 02:29:50 +00:00

129 lines
2.5 KiB
JavaScript

// Copyright (c) 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @interface
*/
class LighthousePort {
/**
* @param {!string} eventName, 'message', 'close'
* @param {function(string|undefined)} cb
*/
on(eventName, cb) {
}
/**
* @param {string} message
*/
send(message) {
}
close() {
}
}
/**
* @implements {LighthousePort}
* @implements {Service}
* @unrestricted
*/
var Audits2Service = class { // eslint-disable-line
/**
* @override
* @param {function(string)}
*/
setNotify(notify) {
this._notify = notify;
}
/**
* @return {!Promise<!ReportRenderer.RunnerResult>}
*/
start(params) {
if (Runtime.queryParam('isUnderTest'))
this._disableLoggingForTest();
self.listenForStatus(message => {
this.statusUpdate(message[1]);
});
return Promise.resolve()
.then(_ => self.runLighthouseInWorker(this, params.url, {flags: params.flags}, params.categoryIDs))
.then(/** @type {!ReportRenderer.RunnerResult} */ result => {
// Keep all artifacts on the result, no trimming
return result;
})
.catch(err => ({
fatal: true,
message: err.message,
stack: err.stack,
}));
}
/**
* @return {!Promise}
*/
stop() {
this.close();
return Promise.resolve();
}
/**
* @param {!Object=} params
* @return {!Promise}
*/
dispatchProtocolMessage(params) {
this._onMessage(params['message']);
return Promise.resolve();
}
/**
* @override
* @return {!Promise}
*/
dispose() {
return Promise.resolve();
}
/**
* @param {string} message
*/
statusUpdate(message) {
this._notify('statusUpdate', {message: message});
}
/**
* @param {string} message
*/
send(message) {
this._notify('sendProtocolMessage', {message: message});
}
close() {
}
/**
* @param {string} eventName
* @param {function(string|undefined)} cb
*/
on(eventName, cb) {
if (eventName === 'message')
this._onMessage = cb;
if (eventName === 'close')
this._onClose = cb;
}
_disableLoggingForTest() {
console.log = () => undefined; // eslint-disable-line no-console
}
};
// Make lighthouse and traceviewer happy.
global = self;
global.isVinn = true;
global.document = {};
global.document.documentElement = {};
global.document.documentElement.style = {
WebkitAppearance: 'WebkitAppearance'
};