diff --git a/README.md b/README.md index a505536..e67a504 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ FFPuppet [![Task Status](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/ffpuppet/master/badge.svg)](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/ffpuppet/master/latest) [![codecov](https://codecov.io/gh/MozillaSecurity/ffpuppet/branch/master/graph/badge.svg)](https://codecov.io/gh/MozillaSecurity/ffpuppet) -[![Matrix](https://img.shields.io/badge/dynamic/json?color=green&label=chat&query=%24.chunk[%3F(%40.canonical_alias%3D%3D%22%23fuzzing%3Amozilla.org%22)].num_joined_members&suffix=%20users&url=https%3A%2F%2Fmozilla.modular.im%2F_matrix%2Fclient%2Fr0%2FpublicRooms&style=flat&logo=matrix)](https://riot.im/app/#/room/#fuzzing:mozilla.org) +[![Matrix](https://img.shields.io/badge/chat-%23fuzzing-green?logo=matrix)](https://matrix.to/#/#fuzzing:mozilla.org) [![PyPI](https://img.shields.io/pypi/v/ffpuppet)](https://pypi.org/project/ffpuppet) FFPuppet is a Python module that automates browser process related tasks to aid in fuzzing. Happy bug hunting! @@ -52,75 +52,13 @@ Usage Once installed FFPuppet can be run using the following command: - python -m ffpuppet - -``` -usage: ffpuppet [-h] [-d] [--log-level LOG_LEVEL] [-e EXTENSION] [-p PREFS] - [-P PROFILE] [-u URL] [--xvfb] [-a ABORT_TOKEN] - [--launch-timeout LAUNCH_TIMEOUT] [-l LOGS] - [--log-limit LOG_LIMIT] [-m MEMORY] - [--poll-interval POLL_INTERVAL] [--save-all] - [--gdb | --pernosco | --rr | --valgrind] - binary - -FFPuppet - Firefox process launcher and log collector. Happy bug hunting! - -positional arguments: - binary Firefox binary to launch - -optional arguments: - -h, --help show this help message and exit - -d, --display-logs Display summary of browser logs on process exit. - --log-level LOG_LEVEL - Configure console logging. Options: DEBUG, INFO, WARN, - ERROR (default: INFO) - -Browser Configuration: - -e EXTENSION, --extension EXTENSION - Install extensions. Specify the path to the xpi or the - directory containing the unpacked extension. - -p PREFS, --prefs PREFS - Custom prefs.js file to use (default: profile default) - -P PROFILE, --profile PROFILE - Profile to use. This is non-destructive. A copy of the - target profile will be used. (default: temporary - profile) - -u URL, --url URL Server URL or path to local file to load. - --xvfb Use Xvfb. (Linux only) - -Issue Detection & Reporting: - -a ABORT_TOKEN, --abort-token ABORT_TOKEN - Scan the browser logs for the given value and close - browser if detected. For example '-a ###!!! - ASSERTION:' would be used to detect soft assertions. - --launch-timeout LAUNCH_TIMEOUT - Number of seconds to wait for the browser to become - responsive after launching. (default: 300) - -l LOGS, --logs LOGS Location to save browser logs. A sub-directory - containing the browser logs will be created. - --log-limit LOG_LIMIT - Browser log file size limit in MBs (default: 0, no - limit) - -m MEMORY, --memory MEMORY - Browser memory limit in MBs (default: 0, no limit) - --poll-interval POLL_INTERVAL - Delay between checks for results (default: 0.5) - --save-all Always save logs. By default logs are saved only when - an issue is detected. - -Available Debuggers: - --gdb Use GDB. (Linux only) - --pernosco Use rr. Trace intended to be submitted to Pernosco. (Linux only) - --rr Use rr. (Linux only) - --valgrind Use Valgrind. (Linux only) - -``` + ffpuppet ##### Replaying a test case - python -m ffpuppet -p -d -u + ffpuppet -p -d -u -This will open the provided test case file in Firefox using the provided prefs.js file and any log data (stderr, stdout, ASan logs... etc) will be dumped to the console when the browser process terminates. [Grizzly Replay](https://github.com/MozillaSecurity/grizzly/wiki/Grizzly-Replay) is recommended for replaying test cases. +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](https://github.com/MozillaSecurity/grizzly/wiki/Grizzly-Replay) is recommended for replaying test cases. ##### Prefs.js files