A build branded Google Chrome answers its built-in AI availability() calls
Under the Google Chrome brand on desktop, from Chrome 138: Summarizer and LanguageModel exist, and both availability() calls settle within 8 s with unavailable, downloadable, downloading or available. N/A for other brands, Android, earlier majors, and when a call throws (severity: warn).
What a detector infers
Since Chrome 138, desktop Chrome defines Summarizer and LanguageModel, the built-in AI APIs, and answers their availability() calls from an on-device model service that ships with Google's build. The answer depends on the machine: 'downloadable' where the hardware meets the model's requirements, 'unavailable' where it does not or where the service is switched off. But it always arrives.
Measured on 28 October 2026: Google Chrome 155 and 156 on Linux (headed, headless, incognito, with --enable-automation and with --disable-field-trial-config) and 156 on Windows answered every time, in 2.2 to 3.4 s for the first call in a fresh profile and in a few milliseconds after that.
Chromium 153 as Playwright bundles it and Chrome for Testing 154 define the same constructors, but started on their own (headed, headless, incognito, with remote debugging or without component updates) their availability() promise was still pending after 8 seconds, in every run; Edge 156 did the same for Summarizer and has no LanguageModel.
The one switch that changes this is --disable-features=OptimizationHints, which turns the service off: then every build, Google's included, answers 'unavailable' at once. Playwright passes that switch by default, so Chromium under Playwright is not caught here; a Chromium-based build that claims the Google Chrome brand and runs without the switch is.
How to resolve it
Claim the brand of the build you run. Google Chrome always answers these calls, whatever the hardware; Chromium and Chrome for Testing leave them pending unless the service is switched off with --disable-features=OptimizationHints, so a Google Chrome brand on top of them is contradicted here.
Nearby checks in Navigator identity
- eval.toString().length matches the engine (V8 = 33)
etslThe string a JS engine returns for a native function's source is an implementation detail, and its length differs per engine… - navigator.productSub === 20030107 (Chromium)
product-subnavigator.productSub is a frozen legacy constant, not a live value: Chrome, Safari and Opera return "20030107" while Firefox returns… - A build branded Google Chrome carries Google's Widevine CDM
widevine-vs-chrome-brandingThe ClearKey row in this suite deliberately refuses to score Widevine, and for the question it asked that is correct: "does a… - A build branded Google Chrome lists the Google voices Google's build ships
google-voices-vs-chrome-brandingGoogle's branded Chrome ships a component extension that registers a set of remote speech voices — "Google US English", "Google Deutsch"… - A build branded Google Chrome decodes the codecs Google licenses
licensed-codecs-vs-chrome-brandingH.264 and AAC are patent-encumbered. Google licenses them for its branded Chrome; a Chromium compiled without the proprietary_codecs flag… - A Firefox user-agent reports the Gecko productSub constant 20100101
gecko-productsub-hardcodenavigator.productSub is a constant compiled into the engine, and the two families disagree: every Gecko build hardcodes it to "20100101"… - No other engine's properties exist on this one, even holding undefined
legacy-engine-props-absentThere is a difference between a property that returns undefined and a property that does not exist, and only one of them is what a real… - navigator.deviceMemory is a power-of-two spec value
device-memory-boundsnavigator.deviceMemory does not report actual RAM — the spec requires the UA to quantise it to a coarse power-of-two rung before exposing…
Clearcote is a browser built for fingerprint coherence
It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.
This audit takes no position on how Clearcote scores on Navigator identity checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.
See the other checks in Navigator identity — the family builtin-ai-vs-chrome-branding belongs to.
