Skip to content
CreatorPrivacyKit

WebGL, WebGPU, and client hints

WebGL, WebGPU, and client hints?

Press the button on this page to read the WebGL vendor and renderer strings, the unmasked values from WEBGL_debug_renderer_info when that extension is present, any WebGPU adapter fields this tab exposes, and the client hints the browser returns, without sending the report off this device.

Last updated

Press the button on this page to read the WebGL vendor and renderer strings, the unmasked values from WEBGL_debug_renderer_info when that extension is present, any WebGPU adapter fields this tab exposes, and the client hints the browser returns, without sending the report off this device.

Last checked 2026-10-22

Read this tab

Nothing has been read yet.

What the button asks for

WebGL: the masked VENDOR and RENDERER strings, then WEBGL_debug_renderer_info. Khronos last modified that extension on July 15, 2014, revision 8. The two tokens are 0x9245 and 0x9246. The overview says implementations might mask RENDERER and VENDOR for privacy. The issues section says browsers should consider whether to expose the extension outside privileged settings.

WebGPU: if navigator.gpu exists, the page calls requestAdapter and copies enumerable fields on adapter.info. If the adapter is missing, the report says so. This page does not invent adapter field names.

Client hints: brands, mobile, and platform are the low-entropy values MDN says are included by default. getHighEntropyValues is experimental. The names this button requests are architecture, bitness, formFactors, fullVersionList, model, platformVersion, uaFullVersion, and wow64. If the ch-ua-high-entropy-values permission is not allowed, MDN says only brands, mobile, and platform come back.

The same ideas are written up in the client hint notes and the font measurement notes. The button also measures the width of ten M characters and ten i characters at 16 pixels in sans-serif, serif, and monospace. That width is not an identity.

Headless run on this machine

On 2026-10-21 a headless Chrome on qiang-pro was started with --use-gl=angle --use-angle=swiftshader. The strings below are that process. They are not your GPU.

Masked vendor and renderer were WebKit and WebKit WebGL. WEBGL_debug_renderer_info was present. The unmasked vendor was Google Inc. (Google). The unmasked renderer was ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver). requestAdapter returned no adapter.

Low-entropy client hints were brands Chromium 154, Google Chrome 154, and Not A(Brand) 99, mobile false, platform Linux. High-entropy values were architecture x86, bitness 64, formFactors Desktop, full versions 154.0.8037.92, 154.0.8037.92, and 99.0.0.0, an empty model, an empty platformVersion, uaFullVersion 154.0.8037.92, and wow64 false.

A second canvas, because the WebGL canvas does not also give a 2D context, measured 16px widths: sans-serif 133.28125 and 35.546875, serif 142.265625 and 44.453125, monospace 96.328125 for both ten M and ten i. Press the button to read the tab you are using.

Sources

Last checked 2026-10-22.

Questions

Does this page fingerprint me when it loads?

No. Nothing is read until you press the button, and the report stays in the tab.

What are the unmasked WebGL values?

Khronos defines UNMASKED_VENDOR_WEBGL as 0x9245 and UNMASKED_RENDERER_WEBGL as 0x9246 on the WEBGL_debug_renderer_info extension. The extension may be missing, and browsers may mask the ordinary VENDOR and RENDERER strings.

Does a renderer string identify me?

Khronos says identifying the precise graphics card may yield personally identifiable information, for example if the card is unique. This page does not turn that into a uniqueness percentage.

Related pages