We are delighted that you want to help improve Marionette! ‘Marionette’ means different a few different things, depending on who you talk to, but the overall scope of the project involves these components:
It serves as the backend for the geckodriver WebDriver implementation, and is used in the context of Firefox UI tests, reftesting, Web Platform Tests, test harness bootstrapping, and in many other far-reaching places where browser instrumentation is required.
geckodriver provides the HTTP API described by the WebDriver protocol to communicate with Gecko-based browsers such as Firefox and Fennec. It is a standalone executable written in Rust, and can be used with compatible W3C WebDriver clients.
By participating in this project, you agree to abide by the Mozilla Community Participation Guidelines. Here are some guidelines for contributing high-quality and actionable bugs and code.
Because there are many moving parts involved remote controlling a web browser, it can be challenging to a new contributor to know where to start. Please don’t hesitate to ask questions!
The canonical source code repository is mozilla-central. Bugs are
filed in the
Testing :: Marionette component on Bugzilla. We also
have a curated set of good first bugs you may consider attempting first.
We have collected a lot of good advice for working on Marionette code in our code style document, which we highly recommend you read.