Skip to Content
Fingerprint ProtectionWebGL Fingerprinting

WebGL Fingerprinting

WebGL is a privacy-relevant surface. BotBrowser provides comprehensive, profile-driven protection across all WebGL fingerprint surfaces.


Prerequisites


Quick Start

chromium-browser \ --bot-profile="/path/to/profile.enc"

Start with this launch to establish a clean baseline before adding extra overrides.

Overview

WebGL is a privacy-relevant API surface. BotBrowser provides profile-driven control over all WebGL output, ensuring consistent results regardless of the host GPU.


Configuration

WebGL Mode

Control WebGL behavior with the --bot-config-webgl flag:

# Use profile-defined WebGL settings (default) --bot-config-webgl=profile # Use real system WebGL (no protection) --bot-config-webgl=real # Disable WebGL entirely --bot-config-webgl=disabled

WebGL Image Noise

Enable deterministic noise on WebGL image readback:

# Enable WebGL image noise (default) --bot-config-noise-webgl-image=true # Disable WebGL image noise --bot-config-noise-webgl-image=false

Noise Seed

Use --bot-noise-seed for reproducible WebGL image output:

--bot-noise-seed=42

GPU Simulation for Headless Servers

On headless Linux servers without a physical GPU, BotBrowser provides full GPU context simulation (ENT Tier2). The profile’s GPU information is presented to WebGL regardless of the host’s actual hardware.


How BotBrowser Provides Protection

BotBrowser controls all WebGL output surfaces at the browser engine level: GPU identity strings, parameter values, shader output, image readback, extension availability, and precision formats. WebGL2 receives the same protections. All values are returned through the same code paths as a native browser, not through JavaScript interception.


Effect Verification

To verify protection is active:

  1. Launch BotBrowser with a profile and visit a fingerprint testing site such as BrowserLeaks  or CreepJS .
  2. Confirm that the reported WebGL vendor, renderer, and parameter values match the profile configuration, not the host GPU.
  3. To verify reproducibility, launch two sessions with the same --bot-noise-seed and confirm that the WebGL image fingerprint output is identical.

Troubleshooting / FAQ

ProblemSolution
WebGL renderer shows host GPU instead of profile GPUVerify profile is loaded with --bot-profile. Check startup logs for profile loading errors.
WebGL not available on headless serverGPU simulation requires ENT Tier2. Verify your license tier supports headless GPU simulation.
WebGL image fingerprint varies between runsUse --bot-noise-seed with a fixed value for reproducible output.
Shader output reveals host OSEnsure --bot-config-webgl=profile is active. The profile normalizes shader translation output.

Next Steps


Related documentation: Advanced Features: Multi-Layer Fingerprint Noise | Advanced Features: Graphics & Rendering Engine


Legal Disclaimer & Terms of Use Responsible Use Guidelines . BotBrowser is for authorized fingerprint protection and privacy research only.