2018-03-06 13:41:09 +03:00
|
|
|
|
Contributing
|
|
|
|
|
============
|
|
|
|
|
|
2018-04-24 22:55:00 +03:00
|
|
|
|
If you are new to open source or to Mozilla, you might like this
|
|
|
|
|
[tutorial for new Marionette contributors](NewContributors.html).
|
|
|
|
|
|
2018-03-06 13:41:09 +03:00
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
* [_Marionette_] is a Firefox remote protocol to communicate with,
|
|
|
|
|
instrument, and control Gecko-based browsers such as Firefox
|
|
|
|
|
and Fennec. It is built in to Firefox and written in [XPCOM]
|
|
|
|
|
flavoured JavaScript.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
* [_webdriver_] is a Rust crate providing interfaces, traits
|
|
|
|
|
and types, errors, type- and bounds checks, and JSON marshaling
|
|
|
|
|
for correctly parsing and emitting the [WebDriver protocol].
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
[_Marionette_]: ./index.html
|
2018-04-27 01:56:38 +03:00
|
|
|
|
[_geckodriver_]: ../../geckodriver/geckodriver
|
2018-03-06 13:41:09 +03:00
|
|
|
|
[_webdriver_]: https://searchfox.org/mozilla-central/source/testing/webdriver/README.md
|
|
|
|
|
[WebDriver protocol]: https://w3c.github.io/webdriver/webdriver-spec.html#protocol
|
|
|
|
|
[XPCOM]: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide
|
|
|
|
|
[Community Participation Guidelines]: https://www.mozilla.org/en-US/about/governance/policies/participation/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Writing 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.
|
|
|
|
|
|
2018-04-24 22:55:00 +03:00
|
|
|
|
[ask questions]: ./index.html#communication
|
|
|
|
|
[reach out to us]: ./index.html#communication
|
2018-03-06 13:41:09 +03:00
|
|
|
|
[mozilla-central]: https://searchfox.org/mozilla-central/source/testing/marionette/
|
2018-04-24 22:55:00 +03:00
|
|
|
|
[good first bugs]: https://www.joshmatthews.net/bugsahoy/?automation=1
|
2018-03-06 13:41:09 +03:00
|
|
|
|
[code style document]: CodeStyle.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Next steps
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
* [Building](Building.html)
|
|
|
|
|
* [Debugging](Debugging.html)
|
|
|
|
|
* [Testing](Testing.html)
|
|
|
|
|
* [Patching](Patches.html)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Other resources
|
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
* [Code style](CodeStyle.html)
|
|
|
|
|
* [Internals](internals/)
|
2018-04-24 22:55:00 +03:00
|
|
|
|
* [New Contributor Tutorial](NewContributors.html)
|