in src/plugins/tracing.ts [78:104]
async stop() {
const events = [];
const collectListener = payload => events.push(...payload.value);
const { client } = this.driver;
client.on('Tracing.dataCollected', collectListener);
const [traceEvents] = await Promise.all([
new Promise(resolve =>
client.once('Tracing.tracingComplete', () => {
client.off('Tracing.dataCollected', collectListener);
resolve(events);
})
),
client.send('Tracing.end'),
]);
const output: Partial<PluginOutput> = {};
if (this.options.filmstrips) {
output.filmstrips = Filmstrips.compute(traceEvents as Array<TraceEvent>);
}
if (this.options.trace) {
Object.assign(output, {
...TraceProcessor.computeTrace(traceEvents as Array<TraceEvent>),
});
}
log(`Plugins: stopped collecting trace events`);
return output;
}