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"

see also