DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (b6d82b1a6b02)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
==========
Marionette
==========

Marionette is a remote `protocol`_ that lets out-of-process programs
communicate with, instrument, and control Gecko-based browsers.

It provides interfaces for interacting with both the internal JavaScript
runtime and UI elements of Gecko-based browsers, such as Firefox
and Fennec.  It can control both the chrome- and content documents,
giving a high level of control and ability to emulate user interaction.

Within the central tree, Marionette is used in most TaskCluster
test jobs to instrument Gecko.  It can additionally be used to
write different kinds of functional tests:

  * The `Marionette Python client`_ is used in the `Mn` job, which
    is generally what you want to use for interacting with web documents

  * `Firefox Puppeteer`_ is a convenience library for Firefox
    frontend UI automation based on the `Marionette Python client`_

Outside the tree, Marionette is used by `geckodriver`_ to implement
`WebDriver`_.

Marionette supports to various degrees all the Gecko based applications,
including Firefox, Thunderbird, Fennec, and Fenix.

.. _protocol: Protocol.html
.. _Marionette Python client: /python/marionette_driver.html
.. _Firefox Puppeteer: http://firefox-puppeteer.readthedocs.io
.. _geckodriver: /testing/geckodriver/
.. _WebDriver: https://w3c.github.io/webdriver/

Some further documentation can be found here:

.. toctree::
   :maxdepth: 1

   Intro.md
   PythonTests.md
   Protocol.md
   Contributing.md
   Debugging.md
   Testing.md
   Taskcluster.md
   CodeStyle.md
   Patching.md
   SeleniumAtoms.md
   Prefs.md
   internals/index


Bugs
====

Bugs are tracked in the `Testing :: Marionette` component.


Communication
=============

The mailing list for Marionette discussion is
tools-marionette@lists.mozilla.org (`subscribe`_, `archive`_).

If you prefer real-time chat, there is often someone in the #interop IRC
channel on irc.mozilla.org.  Don’t ask if you may ask a question; just go ahead
and ask, and please wait for an answer as we might not be in your timezone.

.. _subscribe: https://lists.mozilla.org/listinfo/tools-marionette
.. _archive: https://lists.mozilla.org/pipermail/tools-marionette/