WebGL is a privacy-relevant surface. BotBrowser provides comprehensive, profile-driven protection across all WebGL fingerprint surfaces.
- Familiarity with Browser Fingerprinting Explained.
- BotBrowser installed with a valid profile. See Installation.
chromium-browser \
--bot-profile="/path/to/profile.enc"Start with this launch to establish a clean baseline before adding extra overrides.
WebGL is a privacy-relevant API surface. BotBrowser provides profile-driven control over all WebGL output, ensuring consistent results regardless of the host GPU.
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=disabledEnable 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=falseUse --bot-noise-seed for reproducible WebGL image output:
--bot-noise-seed=42On 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.
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.
To verify protection is active:
- Launch BotBrowser with a profile and visit a fingerprint testing site such as BrowserLeaks or CreepJS.
- Confirm that the reported WebGL vendor, renderer, and parameter values match the profile configuration, not the host GPU.
- To verify reproducibility, launch two sessions with the same
--bot-noise-seedand confirm that the WebGL image fingerprint output is identical.
| Problem | Solution |
|---|---|
| WebGL renderer shows host GPU instead of profile GPU | Verify profile is loaded with --bot-profile. Check startup logs for profile loading errors. |
| WebGL not available on headless server | GPU simulation requires ENT Tier2. Verify your license tier supports headless GPU simulation. |
| WebGL image fingerprint varies between runs | Use --bot-noise-seed with a fixed value for reproducible output. |
| Shader output reveals host OS | Ensure --bot-config-webgl=profile is active. The profile normalizes shader translation output. |
- Canvas Fingerprinting. 2D Canvas as a fingerprint surface.
- Performance Fingerprinting. GPU timing as a tracking vector.
- CLI Flags Reference. All WebGL and noise configuration flags.
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.