in packages/rum-core/src/performance-monitoring/navigation/marks.js [86:121]
function getNavigationTimingMarks(timing) {
const {
redirectStart,
fetchStart,
navigationStart,
responseStart,
responseEnd
} = timing
/**
* Detect if NavigationTiming data is buggy and discard
* capturing navigation marks for the transaction
*
* https://bugs.webkit.org/show_bug.cgi?id=168057
* https://bugs.webkit.org/show_bug.cgi?id=186919
*/
if (
fetchStart >= navigationStart &&
responseStart >= fetchStart &&
responseEnd >= responseStart
) {
const marks = {}
NAVIGATION_TIMING_MARKS.forEach(function (timingKey) {
const m = timing[timingKey]
if (m && m >= fetchStart) {
if (isRedirectInfoAvailable(timing)) {
// make sure navigation marks will show up after the Redirect span
marks[timingKey] = parseInt(m - redirectStart)
} else {
marks[timingKey] = parseInt(m - fetchStart)
}
}
})
return marks
}
return null
}