9644ecd998
Because the content frame script's clickElement function uses the old-style despatch technique, all code lines that have the potential of throwing must be encapsualted in try...catch blocks. Bug 1400256 accidentally moved them outside this block, and we did not have any tests for stale elements in web content. This ensures errors from WebElement.fromJSON and seenEls.get get returned to the WebDriver service in testing/marionette/driver.js. MozReview-Commit-ID: 49qjWhXWy69 --HG-- extra : rebase_source : 3e1b639ad253c3fe7eda890de04608a925e256f5 |
||
---|---|---|
.. | ||
chrome | ||
client | ||
components | ||
doc | ||
harness | ||
prefs | ||
puppeteer | ||
.eslintrc.js | ||
.jsdoc.js | ||
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 | ||
frame.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.