mirror of
https://github.com/feder-cr/invisible_playwright.git
synced 2026-06-07 08:35:12 +02:00
Stealthfox — a patched Firefox 150.0.1 for browser-fingerprint stealth,
shipped as a Playwright-compatible Python wrapper.
* Sync + async Stealthfox launcher (firefox_user_prefs, virtual desktop
on Windows, SOCKS5 auth via patched nsProtocolProxyService)
* fpforge: Bayesian fingerprint sampler over GPU / audio / fonts /
screen / TCP options / ~400 other navigator fields
* WebRTC stealth: srflx address swap, synthetic srflx fallback,
private-LAN host candidates — no real public IP leak via STUN
* GPU sandbox fix for FF150 alt-desktop regression
* Bezier-curve mouse motion baked into Juggler
Targets Windows x86_64 + Linux x86_64. Binary fetched on first run from
GitHub Release "firefox-1".
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from stealthfox._fpforge import generate_profile
|
|
from stealthfox.prefs import translate_profile_to_prefs
|
|
|
|
|
|
def test_translate_includes_gpu_renderer():
|
|
p = generate_profile(seed=42)
|
|
prefs = translate_profile_to_prefs(p)
|
|
assert prefs["zoom.stealth.webgl.renderer"] == p.gpu.renderer
|
|
assert prefs["zoom.stealth.webgl.vendor"] == p.gpu.vendor
|
|
|
|
|
|
def test_translate_includes_screen():
|
|
p = generate_profile(seed=42)
|
|
prefs = translate_profile_to_prefs(p)
|
|
assert prefs["zoom.stealth.screen.width"] == p.screen.width
|
|
assert prefs["zoom.stealth.screen.height"] == p.screen.height
|
|
|
|
|
|
def test_translate_is_deterministic_per_seed():
|
|
a = translate_profile_to_prefs(generate_profile(seed=42))
|
|
b = translate_profile_to_prefs(generate_profile(seed=42))
|
|
assert a == b
|
|
|
|
|
|
def test_translate_varies_across_seeds():
|
|
a = translate_profile_to_prefs(generate_profile(seed=1))
|
|
b = translate_profile_to_prefs(generate_profile(seed=2))
|
|
assert a != b
|
|
|
|
|
|
def test_translate_has_stealth_baseline_constants():
|
|
p = generate_profile(seed=42)
|
|
prefs = translate_profile_to_prefs(p)
|
|
assert prefs.get("privacy.resistFingerprinting") is False
|
|
assert "media.peerconnection.enabled" in prefs
|