every advertised WebGL extension carries a registry name
Every advertised extension name, on both WebGL 1 and WebGL 2, carries one of the registry's vendor prefixes.
What a detector infers
A deployed commercial agent packs the supported-extension list into a bitmap against an ordered list of names it already knows — and carries a separate field for any extension it did NOT recognise, plus a status flag announcing that it saw one. It is not merely recording which extensions are present.
It is watching for extensions that should not exist, and it reports those separately from everything else, which means an unfamiliar name is the opposite of camouflage: it is the single entry that gets singled out. That is a different question from the one the driver-backing row asks.
That row instantiates every advertised extension and confirms the compressed-texture enums have an owning extension, so it catches an extension advertised with no implementation behind it — but an extension with an invented NAME instantiates perfectly well and passes it, because functional is exactly what it tests.
The rule applied here is the registry's naming convention rather than a list of names, and that choice is what stops it drifting: every extension the registry has issued begins with one of a small closed set of vendor prefixes, and new extensions keep arriving carrying them, so the check does not need revising as the registry grows. Measured on a current Chromium, thirty-five extensions on WebGL 1 and thirty-two on WebGL 2, every one conforming.
A name outside that shape was not issued by the registry, which means the entry was added locally.
How to resolve it
Do not add entries to the supported-extension list. Collectors keep their own copy of the registry and report anything outside it in a field of its own, so an unknown name does not blend into the list — it is the part that gets reported.
Nearby checks in Render & GPU
- the GL limits the driver reports are limits the driver will actually honour
webgl-limits-vs-driverEvery other WebGL check on this page reads what getParameter SAYS. - the GPU named by the renderer string can actually render
webgl-performance-caveat-vs-renderergetContext("webgl", {failIfMajorPerformanceCaveat: true}) asks Chromium for a context only if it can supply one without a major performance… - ANGLE's translated shader is written in the dialect the renderer string implies
shader-backend-vs-rendererThe UNMASKED_RENDERER_WEBGL string is a label — a piece of text a page can rewrite to name any GPU and any graphics backend. - every extension WebGL advertises can actually be instantiated
webgl-extensions-vs-drivergetSupportedExtensions() returns a list a page can rewrite; getExtension(name) either hands back a real extension object or null, and that… - the clear path and the shader path paint opaque red to the same bytes
webgl-draw-path-invarianceOpaque red can be produced two ways: the fixed-function clear path, and a fragment shader emitting vec4(1,0,0,1). - a mediump claim of fp32 precision is delivered by the arithmetic
shader-mediump-claim-vs-arithmeticgetShaderPrecisionFormat is a claim about float precision; a shader that computes a value only fp32 can represent is the GPU keeping or… - silence renders as exact zero through the Web Audio graph
audio-render-silence-integrityThe other audio checks compare two renders of a sound; this one renders silence and asserts it stayed silent, which catches a different kind… - a constant signal renders at exactly the amplitude it was given
audio-render-dc-integrityThe companion to the silence check below, and the input that one structurally cannot see.
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 Render & GPU 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 Render & GPU — the family webgl-extension-names-conform belongs to.
