Skip to content

docs(proposal): stealth patched-firefox backend via existing firefox browser_type#2001

Draft
feder-cr wants to merge 1 commit into
unclecode:mainfrom
feder-cr:proposal-invisible-firefox-backend
Draft

docs(proposal): stealth patched-firefox backend via existing firefox browser_type#2001
feder-cr wants to merge 1 commit into
unclecode:mainfrom
feder-cr:proposal-invisible-firefox-backend

Conversation

@feder-cr
Copy link
Copy Markdown

@feder-cr feder-cr commented Jun 4, 2026

draft / interest-check only, not a feature implementation yet. opening so the idea has somewhere concrete to land.

discussion: #2000

the recurring bot-detection wall here (cloudflare / turnstile / datadome) survives patchright + playwright-stealth because those patch chromium at the js layer, still detectable via native .toString() checks, the CDP attach signature, and chromium-shape risk weighting. a firefox build patched at the c++ source level has no js shim and no CDP signature, and presents a non-chrome engine some anti-bot stacks score more leniently.

the hook already exists: browser_manager.py already does if browser_type == "firefox": self.browser = await self.playwright.firefox.launch(**browser_args). the only additions are letting BrowserConfig pass executable_path (point that launch at the patched binary) and firefox_user_prefs (the binary is fully pref-driven). patched firefox 150 lives at feder-cr/invisible_firefox (MPL-2), auto-downloads on first run. returned object is a normal playwright Browser, so extraction / markdown / screenshots / hooks are unchanged.

this PR is just the proposal doc (docs/proposals/invisible-firefox-backend.md). honest caveats: helps the fingerprint/engine layer only, not IP reputation or a Press & Hold once it fires; firefox via playwright has no CDP so connect_over_cdp paths stay chromium-only. if in scope i'll wire the two config passthroughs + a docs example. if not, happy to close without noise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant