A WebGL check can reveal information about the graphics interface exposed to a webpage. That information may help distinguish environments, but it is not a verified hardware inventory or a privacy score. A label such as “Masked” needs interpretation before it is treated as a problem or a protection.
Run the browser fingerprint check. This guide explains the current BrowserCheck code and a reproducible comparison procedure; it does not rank browsers or report a population study.
What BrowserCheck reads
The check attempts to create a WebGL context, with experimental-webgl as a fallback. It requests the WEBGL_debug_renderer_info extension. When the extension is available, the page reads its unmasked renderer and vendor parameters. When it is absent, the page displays “Masked” for those fields.
The fingerprint tool's WebGL hash summarizes the renderer, vendor and WebGL version strings. The privacy report uses a separate summary that includes renderer, vendor, shading-language version and maximum texture size. These are intentionally different inputs: compare the same field on the same page, not the two hashes with each other. Neither value is a rendered 3D scene fingerprint. The implementation is getWebGLInfo in src/hooks/use-extended-fingerprint.ts.
Lab has a different purpose again: it observes WebGL2 availability and the renderer exposed by that context. Its record should not be silently substituted for a fingerprint-tool result. A method name and version belong alongside any measurement you want to compare later.
Masked, unsupported and unavailable are different
“Masked” means this check did not receive the optional debug extension and therefore did not read its extra vendor and renderer values. It does not mean that every graphics property is hidden. The context can still expose standard WebGL information.
“Not Supported” means the attempt to create a context returned no usable context. “Unavailable” means the code encountered an error during the observation. Those states do not identify a single cause. Browser policy, graphics support and environmental restrictions are possible avenues to investigate; the label alone does not tell you which applies.
A renderer string is browser-reported information. It can describe an abstraction layer or software renderer, and this page does not verify a physical GPU serial number. Avoid using it as proof of a particular device model or owner.
How to compare two conditions
- Note the browser version, operating system, active profile and whether hardware acceleration is enabled.
- Run the same page twice before making a change. Keep renderer, vendor, hash and any error state together.
- Change one graphics or privacy setting. Restart the browser if it requests that step.
- Repeat the same test. Compare readable fields before comparing the hash.
- Return to the original setting and retest. Keep updates, remote-desktop sessions and extension changes in the record if they occurred.
Treat this as a diagnostic exercise, not a recommendation to turn protections off permanently. If a change breaks a graphics application, note that functional consequence separately from what this check can observe.
Useful conclusions and limits
A different renderer string supports the conclusion that the page received different graphics information. An unchanged hash says that this particular summary stayed the same. Neither result establishes how another website combines signals or whether it still recognizes a session through storage or an account.
Do not assign a “safe” result to a masked or failed check. BrowserCheck does not have a representative dataset for calculating the rarity of your graphics configuration. It also does not test every WebGL extension or every rendering technique a third party could use.
The Canvas guide covers a separate drawing-based observation. The browser leak test examines network addresses instead. Keeping those methods distinct makes troubleshooting more useful: a graphics change should not be described as fixing a network leak.
Sources and review notes
Reviewed against the current BrowserCheck implementation and these references on September 27, 2026. No particular hardware or browser release is claimed to have passed this procedure.
- MDN: WEBGL_debug_renderer_info describes the optional debug extension and its privacy considerations.
- MDN: WebGLRenderingContext.getParameter documents reading context parameters.
- W3C: Mitigating Browser Fingerprinting explains why combined browser characteristics matter.