mirror of
https://github.com/feder-cr/invisible_playwright.git
synced 2026-06-07 08:35:12 +02:00
Adds the seven files needed to pass the GitHub Community Standards checklist: - CODE_OF_CONDUCT.md (Contributor Covenant 2.1) - CONTRIBUTING.md (scope, dev setup, tests, PR rules; points users at feder-cr/firefox-stealth for C++/spoofing issues) - SECURITY.md (private vuln reporting via GH advisories or email, out-of-scope items redirected to firefox-stealth / Mozilla) - .github/ISSUE_TEMPLATE/bug_report.yml - .github/ISSUE_TEMPLATE/feature_request.yml - .github/ISSUE_TEMPLATE/config.yml (disables blank issues, links to security advisories, firefox-stealth, and discussions) - .github/PULL_REQUEST_TEMPLATE.md
3 KiB
3 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/firefox-stealth. 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 firefox-stealth):
- 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/firefox-stealthinstead.
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).