mirror of
https://github.com/feder-cr/invisible_playwright.git
synced 2026-06-07 08:35:12 +02:00
The companion C++ patches repo at feder-cr/firefox-stealth was deleted 2026-05-19 and the source-of-truth fork was renamed from feder-cr/firefox to feder-cr/invisible-firefox. The branch stealth/150 on the renamed fork is now the single source of truth for all C++ patches. GitHub's auto-redirect is in effect for the old URLs but is not a forever guarantee, so update all references now. Updated: README.md × 2 hyperlinks (intro paragraph + license section) CONTRIBUTING.md × 3 references (quick links, scope, bug reports) SECURITY.md × 1 reference (out-of-scope vulnerabilities)
3.1 KiB
3.1 KiB
Contributing to invisible_playwright
Thanks for your interest in improving this project. Contributions are welcome via issues and pull requests.
Quick links
- Bug? Open a bug report.
- Idea? Open a feature request.
- Security issue? Do not open a public issue — see SECURITY.md.
- The C++ patches live in the companion repo feder-cr/invisible-firefox (branch
stealth/150). Bugs in fingerprint spoofing usually belong there.
Scope
This repository ships the Python wrapper (invisible_playwright) around a pre-built patched Firefox. In scope:
- The
InvisiblePlaywrightsync/async API and launcher - The fingerprint sampler (
_fpforge) - Binary download/caching, CLI, proxy plumbing
- Tests, docs, examples, packaging
Out of scope (belongs in invisible-firefox):
- Changes to the Firefox C++ source
- New preferences exposed by the patched binary
- Canvas / WebGL / WebRTC / font spoofing logic
Development setup
git clone https://github.com/feder-cr/invisible_playwright.git
cd invisible_playwright
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
python -m invisible_playwright fetch # download the patched Firefox binary
Requires Python 3.11+ and one of: Windows x86_64, Linux x86_64.
Running tests
pytest # unit + integration (default — fast)
pytest -m e2e # end-to-end, requires the patched binary
pytest -m slow # wheel-build regression tests
Markers are defined in pyproject.toml. The default run excludes slow and e2e.
Pull requests
- Fork and create a topic branch (
fix/...,feat/...,docs/...). - Keep PRs focused — one logical change per PR.
- Add or update tests for any behavior change.
- Make sure the default
pytestrun is green. - Follow Conventional Commits for commit messages (e.g.
fix(launcher): handle missing profile dir). - Update
README.mdordocs/when changing user-visible behavior. - Open the PR against
main, fill in the PR template, and link any related issue.
CI must be green before merge.
Reporting bugs
Before opening, please:
- Search existing issues — the bug may already be tracked.
- Reproduce on the latest release if possible.
- Confirm the issue is in the Python wrapper, not the patched Firefox itself. If a fingerprint is leaking or a detector flags the browser, open the issue at
feder-cr/invisible-firefoxinstead.
Include:
- OS and version, Python version,
invisible_playwrightversion (invisible_playwright version) - A minimal reproduction
- Expected vs actual behavior
- Relevant logs / stack traces
License
By contributing, you agree that your contributions will be licensed under the MIT License (see LICENSE).