';
row.querySelector('rect').setAttribute('width', getCSSWidth(stat, endStat));
} else {
// Render a point in time
row.innerHTML = '
' + stat + '
' +
'
' +
'
' + (performance.timing[stat] - timingOffset) + '
';
row.querySelector('rect').setAttribute('width', 2);
}
row.querySelector('rect').setAttribute('x', getLeft(stat));
document.querySelector('#djDebugBrowserTimingTableBody').appendChild(row);
}
// This is a reasonably complete and ordered set of timing periods (2 params) and events (1 param)
addRow('domainLookupStart', 'domainLookupEnd');
addRow('connectStart', 'connectEnd');
addRow('requestStart', 'responseEnd'); // There is no requestEnd
addRow('responseStart', 'responseEnd');
addRow('domLoading', 'domComplete'); // Spans the events below
addRow('domInteractive');
addRow('domContentLoadedEventStart', 'domContentLoadedEventEnd');
addRow('loadEventStart', 'loadEventEnd');
document.querySelector('#djDebugBrowserTiming').classList.remove('djdt-hidden');