v145 · Web APIs · Privacy · demo
UA Field Annotator
Paste any User-Agent string — or use your browser's live value — and see each field annotated: what it reveals, whether it is frozen or real data in Chrome 145, and which navigator.userAgentData hint replaces it for fine-grained signals.
Chrome 145 completed the rollout. The UA string is now "frozen by default": OS versions, device models, and minor browser versions are hardcoded placeholders. The
navigator.userAgentData API provides the real values on demand.
Edit the UA string below to annotate any browser · click "Get high-entropy values" to see what UA-CH can reveal
navigator.userAgent (editable — paste any UA string)
| Token | What it reveals | Chrome 145 status | UA-CH hint |
|---|---|---|---|
| Loading… | |||
navigator.userAgentData (live)
Loading…
// Reading the UA string (legacy — frozen in Chrome 145)
const ua = navigator.userAgent;
// "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ..."
// OS version, device model, minor version are now frozen placeholders.
// navigator.userAgentData — low-entropy, always available (Chrome)
const { brands, mobile, platform } = navigator.userAgentData;
// High-entropy values — require explicit request, may prompt user
const high = await navigator.userAgentData.getHighEntropyValues([
'platformVersion', // actual OS version e.g. "10.0.22631" (Win11)
'fullVersionList', // e.g. [{brand: 'Google Chrome', version: '145.0.7316.2'}]
'architecture', // 'x86' | 'arm'
'bitness', // '64' | '32'
'model', // actual device on Android e.g. 'Pixel 7'
]);
console.log(high.platformVersion); // real Windows 11 version, not frozen "10.0"