hints / ua · opt-in
Sec-CH-UA-Full-Version
Sec-CH-UA-Full-Version carries the full browser version as a single string. It is deprecated; request Sec-CH-UA-Full-Version-List instead.
- Example
Sec-CH-UA-Full-Version: "126.0.6478.127"- JavaScript
getHighEntropyValues(['uaFullVersion'])- Available since
- Chrome 89 (2021), deprecated since Chrome 98
- Engines
- Chrome Edge Opera Firefox Safari
- References
- MDN · Specification
Sec-CH-UA-Full-Version was the original way to get an exact browser version over client hints: one quoted string, one version.
Sec-CH-UA-Full-Version: "126.0.6478.127" Why it was replaced
A single version number cannot answer the question honestly in a multi-brand world. Whose version is 126.0.6478.127, Chromium’s or Edge’s? Real browsers carry several brands (see Sec-CH-UA), each with its own version, and Edge’s build number differs from the Chromium it wraps. Sec-CH-UA-Full-Version-List fixed this in Chrome 98 by returning the whole brand/version table, and this header was deprecated the same day.
Chromium still sends it if you ask, and will for the foreseeable future (an enormous amount of deployed Accept-CH configuration references it), but MDN and the spec both flag it deprecated.
Migrating
# before
Accept-CH: Sec-CH-UA-Full-Version
# after
Accept-CH: Sec-CH-UA-Full-Version-List // before
const { uaFullVersion } = await navigator.userAgentData
.getHighEntropyValues(['uaFullVersion']);
// after
const { fullVersionList } = await navigator.userAgentData
.getHighEntropyValues(['fullVersionList']);
const chrome = fullVersionList.find((b) => b.brand === 'Google Chrome'); New integrations should never request this hint. It remains documented here because you will keep meeting it in older tutorials, existing Accept-CH headers, and analytics pipelines for years.