e050496c59
MozReview-Commit-ID: 7bVI1iM6hor --HG-- extra : source : 0b97a30cadb1a96d3cafae6b79ef0d3ec26770cf extra : amend_source : d0515fe4eb13b59cc490ca9d964ad9ee15ef3cd3 extra : intermediate-source : 6e56f4c8843ed134b2dba34fb007298fd55be966 extra : histedit_source : 88abf9f4ea4e740a9391278625ef07395205c3f5%2Cc14bc7a71eb413fcb573ed0d030fd7f99a1468f0 |
||
---|---|---|
.. | ||
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.