v151 · performance · timing

Navigation Timing Probe

Chrome 151 adds a Timing-Allow-Origin opt-in for navigation redirect chains. When a navigation crosses origins via redirects, the PerformanceNavigationTiming redirect timing fields (redirectStart, redirectEnd) are zeroed unless the destination origin opts in via Timing-Allow-Origin.

Navigation vs. Subresource

The Chrome 151 change is specifically about navigation redirect timing. Previously, PerformanceResourceTiming for subresources (fetch, img, script) had TAO — but PerformanceNavigationTiming redirect fields were always zeroed for cross-origin redirects. This opt-in lets the destination server expose them.

FieldValueStatus

Zeroed fields (0) indicate the timing data is hidden due to cross-origin restrictions. Chrome 151 allows the destination server to expose navigation redirect timing via TAO.

Reading PerformanceNavigationTiming redirect fields

// Read the current page's navigation timing const navEntries = performance.getEntriesByType("navigation"); for (const entry of navEntries) { console.log("redirectStart:", entry.redirectStart); console.log("redirectEnd:", entry.redirectEnd); // If the page was reached via a cross-origin redirect, // these will be 0 unless the server sent: // Timing-Allow-Origin: * (or your origin) }

Chrome 151 extends the TAO opt-in to PerformanceNavigationTiming redirect chains, so analytics can measure redirect latency for navigations — not just subresources.

references

implementation reference

Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗