← Chrome 151 reference

v151 · performance · navigation timing

Cross-origin redirect timing opt-in

Limited availability

  • Chrome · enabled by default 151
  • Edge · not separately reported
  • Firefox · no signal
  • Safari · recorded positive signal

The broader Navigation timing feature is Baseline widely available on webstatus.dev, but the opt-in addition is not a separately tracked web-feature there (checked 2026-07-26). BCD covers the general redirectCount/redirectStart/redirectEnd properties but has no entry for this cross-origin exposure; the compatibility section keeps the two apart.

Until now, a navigation through a cross-origin redirect chain reported redirectCount, redirectStart, and redirectEnd as zero — even for redirects the destination site operated itself. This feature lets each redirect response opt forward into measurement by the navigation's destination origin, via the Timing-Allow-Origin response header, so the destination page can finally see and optimize its cross-origin redirect chains.

at a glance

At a glance
Milestone listingChrome 151 — Enabled by default
Feature detailDesktop 151, Android 151, WebView 151; status text “Proposed” (detail updated 2026-07-13); ship stage desktop_first 151
SurfaceOne protocol element (Timing-Allow-Origin on navigation redirect responses) and three PerformanceNavigationTiming attributes (redirectCount, redirectStart, redirectEnd)
Runtime featureNavigationTimingRedirectTimingViaTAO — status stable at trunk
Standards bodyWHATWG Fetch and WHATWG HTML (both merged via PRs fetch #1931 and html #12513); W3C Navigation Timing
ChromeStatus5078310347472896 — Cross-origin redirect timing opt-in
Source: chromestatus.com/feature/5078310347472896; Chromium runtime_enabled_features.json5

Member reference

The developer-facing surface is one protocol element and three timing attributes, plus the fetch bookkeeping and algorithms that connect them. Each has stable detailed reference covering syntax, inputs, outputs, errors, context, lifecycle, examples, compatibility, and security/privacy:

Source: Fetch Standard — navigation TAO check; Navigation Timing — PerformanceNavigationTiming

How the opt-in works

For subresources, Timing-Allow-Origin has always opted backwards: a response names the requesting origins allowed to measure it. For a navigation, the meaningful opt-in runs the other way — the page that lands (the destination) is the one that wants to measure, and each redirect in the chain must allow it. The merged Fetch change therefore records every redirect response's Timing-Allow-Origin values during the chain and, once the destination origin is known, runs the navigation TAO check: every redirect must have named either * or the destination's serialized origin, or the chain stays opaque.

Two more boundaries from the normative text. First, the exposure conditional only engages when the chain has cross-origin redirects: a purely same-origin chain always exposes its real values, regardless of referrer policy. When the chain does include a cross-origin redirect, exposure requires both that the request's client is null or its referrer is not no-referrer, and that the navigation TAO check succeeds. Second, that check runs over every redirect response in the chain — including same-origin hops: once any cross-origin redirect exists, a hop that sends no Timing-Allow-Origin (or names neither * nor the destination) fails the whole chain, and the destination sees redirectCount === 0 and zeroed redirect times, exactly as before.

Source: Fetch Standard — navigation TAO check; Fetch Standard — navigation timing allow values list; whatwg/html PR #12513

Examples

Live example from the Chrome Platform Showcase: walk a redirect chain and observe what the destination can measure. Source: chrome-platform-showcase
// On the destination page: read the navigation's redirect timing.
const [nav] = performance.getEntriesByType("navigation");
if (nav.redirectCount > 0) {
  // Every redirect in the chain opted this origin in via Timing-Allow-Origin.
  console.log(`${nav.redirectCount} redirect(s), chain took`,
    nav.redirectEnd - nav.redirectStart, "ms");
} else {
  // No redirects, OR at least one cross-origin redirect did not opt in,
  // OR this was a no-referrer navigation — the fields stay zero by design.
}
Source: Navigation Timing — PerformanceNavigationTiming; whatwg/html PR #12513

Browser compatibility

BCD has no entry for this opt-in (checked 2026-07-26) — its redirectCount entry (in api/PerformanceNavigationTiming.json) and redirectStart/redirectEnd entries (in api/PerformanceResourceTiming.json) cover the general properties, which predate and do not imply this feature. On webstatus.dev the query resolves to the broader Baseline Navigation timing feature (widely available) — not evidence about this addition, which has no distinct entry. The table below is an interim view from ChromeStatus, labelled as such.

Interim compatibility — from ChromeStatus, not BCD
Engine / runtimeSupportNotes
Chrome151Milestone listing: Enabled by default; detail desktop + Android + WebView 151 with status text “Proposed” (updated 2026-07-13); runtime feature NavigationTimingRedirectTimingViaTAO stable at trunk
EdgeNot separately reportedNo Edge position is recorded on ChromeStatus; no public support evidence
FirefoxNo signalVendor signal recorded on the ChromeStatus entry; no BCD or public support evidence
SafariRecorded positive signalThe ChromeStatus entry records a Positive signal — a recorded signal, not an official WebKit standards position (a feature this small has none)

Vendor signals come from the ChromeStatus API feature record (checked 2026-07-26): Firefox “No signal”, Safari “Positive”, web developers “Positive” (as labelled on the ChromeStatus feature entry). For the general property's BCD entry see BCD api/PerformanceNavigationTiming.json.

Source: ChromeStatus API feature record; BCD api/PerformanceNavigationTiming.json; webstatus.dev query

Specifications

Specifications
SpecificationStatus
WHATWG Fetch — navigation TAO checkLiving Standard (normative); landed via whatwg/fetch PR #1931 (merged)
WHATWG HTML — navigation timing entry creationLiving Standard (normative); landed via whatwg/html PR #12513 (merged)
W3C Navigation Timing — PerformanceNavigationTimingW3C draft (normative attribute contracts)
Source: spec links recorded on chromestatus.com/feature/5078310347472896

See also