Bundled fingerprint presets can crash startup when WebGL pair is unsupported
Describe the bug:
fingerprint_preset=True can fail nondeterministically during browser startup because some bundled real-device presets contain WebGL vendor/renderer pairs that do not exist in webgl_data.db for the preset's OS.
For Firefox 152 on macOS, 3 of the 67 candidate presets contain:
vendor: ATI Technologies Inc.
renderer: Radeon HD 3200 Graphics, or similarThe database only contains that renderer under vendor AMD, with Linux-only probability. When one of those three presets is selected, launch_options() raises:
ValueError: No WebGL data found for vendor "ATI Technologies Inc." and renderer "Radeon HD 3200 Graphics, or similar"This explains why the same application can launch and restart successfully for a while before suddenly failing. An audit against sample_webgl() found that this is not limited to one pair:
fingerprint-presets.json: 9 of 123 presets unsupportedfingerprint-presets-v150.json: 30 of 312 presets unsupported
The mismatch is present on current main. This is adjacent to #729 and #743, but those address cross-property coherence and explicitly preserve presets; they do not prevent unsupported preset/database pairs from reaching sample_webgl().
Expected behavior: every preset eligible for random selection should be launchable with the bundled WebGL database. Unsupported presets should not crash browser startup.
Screenshots:
Not applicable.
To Reproduce:
This deterministic reproduction selects the first affected bundled preset:
import json
from pathlib import Path
import camoufox
from camoufox.utils import launch_options
preset_path = Path(camoufox.__file__).parent / "fingerprint-presets-v150.json"
preset = json.loads(preset_path.read_text())["presets"]["macos"][0]
launch_options(headless=True, os="macos", fingerprint_preset=preset)Actual result:
ValueError: No WebGL data found for vendor "ATI Technologies Inc." and renderer "Radeon HD 3200 Graphics, or similar"The production form is simply:
Camoufox(headless=True, os="macos", fingerprint_preset=True)It fails when random selection reaches one of the unsupported presets.
Version:
cloverlabs-camoufox 0.6.0
Browser v152.0.4-beta.30
BrowserForge v1.2.4
Playwright v1.60.0
Python 3.14.2
macOS 26.6.2 arm64Source: daijro/camoufox