19a956c2c6
MozReview-Commit-ID: 7bVI1iM6hor --HG-- extra : source : 0b97a30cadb1a96d3cafae6b79ef0d3ec26770cf extra : amend_source : 09a90b29837e339eec7bdf8504f86c28e74ca3dd extra : intermediate-source : a1eca62826a1341ca24d4d2a93d4884d4fc7ad51 extra : histedit_source : eb26e73b531f9a34d3401d39f60b533b27b78540 |
||
---|---|---|
.. | ||
chrome | ||
client | ||
components | ||
doc | ||
harness | ||
prefs | ||
puppeteer | ||
.eslintrc.js | ||
.jsdoc.js | ||
CONTRIBUTING.md | ||
README.md | ||
accessibility.js | ||
action.js | ||
addon.js | ||
assert.js | ||
atom.js | ||
browser.js | ||
capture.js | ||
cert.js | ||
cookie.js | ||
dom.js | ||
driver.js | ||
element.js | ||
error.js | ||
evaluate.js | ||
event.js | ||
format.js | ||
interaction.js | ||
jar.mn | ||
l10n.js | ||
legacyaction.js | ||
listener.js | ||
mach_commands.py | ||
mach_test_package_commands.py | ||
message.js | ||
modal.js | ||
moz.build | ||
navigate.js | ||
packets.js | ||
proxy.js | ||
reftest.js | ||
reftest.xul | ||
server.js | ||
session.js | ||
stream-utils.js | ||
sync.js | ||
test_action.js | ||
test_assert.js | ||
test_browser.js | ||
test_cookie.js | ||
test_dom.js | ||
test_element.js | ||
test_error.js | ||
test_evaluate.js | ||
test_format.js | ||
test_message.js | ||
test_navigate.js | ||
test_session.js | ||
test_sync.js | ||
transport.js | ||
unit.ini | ||
wm.js |
README.md
Marionette
Marionette is the remote protocol that lets OOP programs communicate with, instrument, and control Gecko.
Description
Marionette is an automation driver for Mozilla’s Gecko engine. It can remotely control either the UI or the internal JavaScript of Gecko-based browsers, such as Firefox and Fennec. It can control both the chrome and the content document, giving a high level of control and ability to replicate user interaction. In addition to performing actions on the browser, Marionette can also ready properties and attributes of the DOM.
Usage
Marionette can be activated by passing the -marionette
flag.
To start Firefox with the remote protocol turned on:
% firefox -marionette
…
1491228343089 Marionette INFO Listening on port 2828
This binds to a TCP socket, over which clients can communicate with Marionette using the protocol.
Clients
Clients may be implemented in any language that is capable of writing and receiving data over TCP socket. A reference client is provided. Clients may be implemented both synchronously and asynchronously, although the latter is impossible in protocol levels 2 and earlier due to the lack of message sequencing.
Contributing
If you want to help improve Marionette, we have more information in <CONTRIBUTING.md>. You will find additional development documentation at https://firefox-source-docs.mozilla.org/testing/marionette/marionette.
Communication
The mailing list for discussion is tools-marionette@lists.mozilla.org (subscribe, archive). If you prefer real-time chat, there is often someone in the #ateam IRC channel on irc.mozilla.org. Don’t ask if you can ask a question, just ask, and please wait for an answer as we might not be in your timezone.