af1b617e27 | ||
---|---|---|
.. | ||
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.
Bugs
Bugs are tracked in the Testing :: Marionette
component.
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.