Skip to main content

A Python module that aids in the automation of Firefox at the process level

Project description

FFPuppet

CI codecov Matrix PyPI

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ffpuppet-1.0.0.tar.gz (89.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ffpuppet-1.0.0-py3-none-any.whl (102.1 kB view details)

Uploaded Python 3

File details

Details for the file ffpuppet-1.0.0.tar.gz.

File metadata

  • Download URL: ffpuppet-1.0.0.tar.gz
  • Upload date:
  • Size: 89.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for ffpuppet-1.0.0.tar.gz
Algorithm Hash digest
SHA256 997b97cd6e988a0d73aa1afa0e41d854a2e816f0e4dcb8db21f7fce24d3eaec6
MD5 286ab0d420cf1098e13f289ae55c446b
BLAKE2b-256 1cc653684d79f0ee149667a845240de8c6c2c883414a6ffc8e8c1868b579b147

See more details on using hashes here.

File details

Details for the file ffpuppet-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ffpuppet-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 102.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for ffpuppet-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5d3db5bb831bd783aa0a865e906b209d0df80b1670096768e489cc4377e24ed
MD5 f2900fb536003a5ec25d706e84bdeb53
BLAKE2b-256 d8b599b5da978bcaf1e097de98d0d1983dece37a56d46c37c5f3fadb8f59f4d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page