{"id":23512636,"url":"https://github.com/mozillasecurity/ffpuppet","last_synced_at":"2025-04-06T05:16:00.710Z","repository":{"id":20091945,"uuid":"57244320","full_name":"MozillaSecurity/ffpuppet","owner":"MozillaSecurity","description":"A Python module that aids in the automation of Firefox at the process level","archived":false,"fork":false,"pushed_at":"2025-03-26T17:30:24.000Z","size":6934,"stargazers_count":32,"open_issues_count":4,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-30T04:09:28.079Z","etag":null,"topics":["automated-testing","automation","firefox","fuzzing","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MozillaSecurity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-27T20:09:08.000Z","updated_at":"2025-03-26T17:30:26.000Z","dependencies_parsed_at":"2024-08-08T22:11:07.051Z","dependency_job_id":"aeef8949-b9b6-468f-912c-4179f08b987c","html_url":"https://github.com/MozillaSecurity/ffpuppet","commit_stats":{"total_commits":681,"total_committers":10,"mean_commits":68.1,"dds":"0.15712187958883994","last_synced_commit":"44908998739fa26a70c49a07f38862f521e50403"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fffpuppet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fffpuppet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fffpuppet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fffpuppet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MozillaSecurity","download_url":"https://codeload.github.com/MozillaSecurity/ffpuppet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247436286,"owners_count":20938533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automated-testing","automation","firefox","fuzzing","python"],"created_at":"2024-12-25T13:18:08.871Z","updated_at":"2025-04-06T05:16:00.688Z","avatar_url":"https://github.com/MozillaSecurity.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"FFPuppet\n========\n\n[![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)\n[![codecov](https://codecov.io/gh/MozillaSecurity/ffpuppet/branch/master/graph/badge.svg)](https://codecov.io/gh/MozillaSecurity/ffpuppet)\n[![Matrix](https://img.shields.io/badge/chat-%23fuzzing-green?logo=matrix)](https://matrix.to/#/#fuzzing:mozilla.org)\n[![PyPI](https://img.shields.io/pypi/v/ffpuppet)](https://pypi.org/project/ffpuppet)\n\nFFPuppet is a Python module that automates browser process related tasks to aid in fuzzing. Happy bug hunting!\n\nAre you [fuzzing](https://firefox-source-docs.mozilla.org/tools/fuzzing/index.html) the browser? [Grizzly](https://github.com/MozillaSecurity/grizzly) can help.\n\nInstallation\n------------\n\n##### To install the latest version from PyPI\n\n    pip install ffpuppet\n\n##### Xvfb on Linux\n\nOn Linux `xvfb` can be used in order to run headless (this is not the same as Firefox's `-headless` mode).\n\nTo install `xvfb` on Ubuntu run:\n\n    apt-get install xvfb\n\n##### Install minidump-stackwalk\n\n`minidump-stackwalk` is used to collect crash reports from minidump files. More\ninformation can be found [here](https://lib.rs/crates/minidump-stackwalk).\n\nBrowser Builds\n--------------\n\nIf you are looking for builds to use with FFPuppet there are a few options.\n\n##### Download a build\n\n[fuzzfetch](https://github.com/MozillaSecurity/fuzzfetch) is the recommended method for obtaining builds and is also very helpful in automation.\n\nTaskcluster has a collection of many different build types for multiple platforms and branches.\nAn index of the latest mozilla-central builds can be found [here](https://firefox-ci-tc.services.mozilla.com/tasks/index/gecko.v2.mozilla-central.latest.firefox/).\n\n##### Create your own build\n\nIf you would like to compile your own, build instructions can be found [here](https://firefox-source-docs.mozilla.org/setup/index.html). When using `minidump-stackwalk`\nbreakpad [symbols](https://firefox-source-docs.mozilla.org/setup/building_with_debug_symbols.html#building-with-debug-symbols) are required for symbolized stacks.\n\nUsage\n-----\n\nOnce installed FFPuppet can be run using the following command:\n\n    ffpuppet \u003cfirefox_binary\u003e\n\n##### Replaying a test case\n\n    ffpuppet \u003cfirefox_binary\u003e -p \u003ccustom_prefs.js\u003e -d -u \u003ctestcase\u003e\n\nThis 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.\n\n##### Prefs.js files\n\nprefs.js files that can be used for fuzzing or other automated testing can be generated with [PrefPicker](https://github.com/MozillaSecurity/prefpicker).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozillasecurity%2Fffpuppet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozillasecurity%2Fffpuppet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozillasecurity%2Fffpuppet/lists"}