FFPuppet
FFPuppet is a Python module that automates browser process related tasks to aid in fuzzing. Happy bug hunting!
Are you fuzzing the browser? Grizzly can help.
Installation
To install the latest version from PyPI
pip install ffpuppet
Xvfb on Linux
On Linux xvfb can be used in order to run headless (this is not the same as Firefox's -headless mode).
To install xvfb on Ubuntu run:
apt-get install xvfb
Install minidump-stackwalk
minidump-stackwalk is used to collect crash reports from minidump files. More
information can be found here.
Browser Builds
If you are looking for builds to use with FFPuppet there are a few options.
Download a build
fuzzfetch is the recommended method for obtaining builds and is also very helpful in automation.
Taskcluster has a collection of many different build types for multiple platforms and branches. An index of the latest mozilla-central builds can be found here.
Create your own build
If you would like to compile your own, build instructions can be found here. When using minidump-stackwalk
breakpad symbols are required for symbolized stacks.
Usage
Once installed FFPuppet can be run using the following command:
ffpuppet <firefox_binary>
Replaying a test case
ffpuppet <firefox_binary> -p <custom_prefs.js> -d -u <testcase>
This will open the provided test case file in Firefox using the provided prefs.js file. Any log data (stderr, stdout, ASan logs... etc) will be dumped to the console if a failure is detected. Grizzly Replay is recommended for replaying test cases.
Prefs.js files
prefs.js files that can be used for fuzzing or other automated testing can be generated with PrefPicker.
Metadata
Release files for ffpuppet 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ffpuppet-1.1.0.tar.gz | 90.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ffpuppet-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 192.7 kB
Release files / ffpuppet-1.1.0.tar.gz
| Download URL | ffpuppet-1.1.0.tar.gz |
|---|---|
| Size | 90.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1359237b8f136bc234848789b2bfe4f09580f232181a50213c7550037278ac79
|
|
BLAKE2b-256 checksum How to use checksums |
753119ad540e6854f5a3ed4ef297fecf37cdb43f53b5d7d66ea43c96b87ce542
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.
Transparency logRelease files / ffpuppet-1.1.0-py3-none-any.whl
| Download URL | ffpuppet-1.1.0-py3-none-any.whl |
|---|---|
| Size | 102.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
75dfb39532d8bb483507e1aedcbce0849259fb12972366f6aaf8229899784508
|
|
BLAKE2b-256 checksum How to use checksums |
e41e3ff3454ffaec010cbe915d92894b68ac2fe2437ef0e6ff326a5116bc604b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.
Transparency log