in src/sdk/lh-trace-processor.ts [432:450]
static getMainThreadTopLevelEvents(trace, startTime = 0, endTime = Infinity) {
const topLevelEvents = [];
// note: mainThreadEvents is already sorted by event start
for (const event of trace.mainThreadEvents) {
if (!this.isScheduleableTask(event) || !event.dur) continue;
const start = (event.ts - trace.timeOriginEvt.ts) / 1000;
const end = (event.ts + event.dur - trace.timeOriginEvt.ts) / 1000;
if (start > endTime || end < startTime) continue;
topLevelEvents.push({
start,
end,
duration: event.dur / 1000,
});
}
return topLevelEvents;
}