2020-07-23 02:33:20 -04:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
// ============================================================================
|
|
|
|
// Timing Tracker
|
|
|
|
// For figuring out FFZ loading
|
|
|
|
// ============================================================================
|
|
|
|
|
|
|
|
import Module from 'utilities/module';
|
|
|
|
|
|
|
|
|
|
|
|
export default class Timing extends Module {
|
|
|
|
constructor(...args) {
|
|
|
|
super(...args);
|
|
|
|
|
|
|
|
this.events = [];
|
2020-07-24 17:55:11 -04:00
|
|
|
|
|
|
|
this._listener = null;
|
|
|
|
|
|
|
|
this.on('settings:enabled', () => {
|
|
|
|
this.resolve('settings').addUI('timing.info', {
|
|
|
|
path: 'Debugging > Performance >> Info @{"sort": -1000}',
|
|
|
|
force_seen: true,
|
|
|
|
component: 'performance',
|
|
|
|
|
|
|
|
setListener: fn => this._listener = fn,
|
|
|
|
getEvents: () => this.events,
|
|
|
|
getTiming: () => this
|
|
|
|
});
|
|
|
|
});
|
2020-07-23 02:33:20 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
__time() { /* no-op */ } // eslint-disable-line class-methods-use-this
|
|
|
|
|
|
|
|
addEvent(event) {
|
|
|
|
event.ts = performance.now();
|
|
|
|
this.events.push(event);
|
2020-07-24 17:55:11 -04:00
|
|
|
if ( this._listener )
|
|
|
|
this._listener(event);
|
2020-07-23 02:33:20 -04:00
|
|
|
}
|
|
|
|
}
|