mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-10 13:44:39 +08:00
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
129 lines
2.5 KiB
JavaScript
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'
|
|
};
|