gecko-dev/testing/marionette
Andreas Tolfsen 4092fd5b34 Bug 1408508 - Move Context to browser module. r=maja_zf
To avoid circular dependencies, where file A depends on B depending
on A, we should strive towards fewer inter-dependencies and more
autonomy between modules.

For example, if testing/marionette/browser.js needs access to
the Context enum it can currently only attain it by importing
testing/marionette/driver.js.  Because driver.js imports browser.js,
we create a circular dependency and Cu.import enters an infinite
import recursion.

MozReview-Commit-ID: LGiA9sy9xrd

--HG--
extra : rebase_source : e4b69c91b9cf78705c902f1e5038d815b88114d0
2017-10-16 17:47:35 +01:00
..
chrome
client Bug 1409030 - Remove Marionette socket protocol levels below 3. r=ato 2017-10-16 16:42:06 +02:00
components Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
doc Bug 1407990 - Move protocol definition to doc/Protocol.md. r=maja_zf 2017-10-13 17:08:57 +01:00
harness Bug 1408508 - Move Context to browser module. r=maja_zf 2017-10-16 17:47:35 +01:00
prefs Bug 1376128 - Expose unrecognised eslint globals; r=automatedtester 2017-06-28 11:04:14 -07:00
puppeteer Bug 1364349 - Removed platform property of Firefox Puppeteer. r=whimboo 2017-09-25 14:30:11 +05:30
.eslintrc.js Bug 1405279 - Lint for unused variables. r=whimboo 2017-10-03 14:36:09 +01:00
.jsdoc.js Bug 1405757 - Generate Marionette API docs to testing/marionette/doc/api. r=me 2017-10-04 18:35:12 +01:00
accessibility.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
action.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
addon.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
assert.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
atom.js Bug 1275273 - Remove isElementSelected atom. r=maja_zf 2017-10-11 15:24:03 +01:00
browser.js Bug 1408508 - Move Context to browser module. r=maja_zf 2017-10-16 17:47:35 +01:00
capture.js Bug 1384517 - Fix testing/marionette API docs; r=automatedtester 2017-07-26 13:11:53 +01:00
cert.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
cookie.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
dom.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
driver.js Bug 1408508 - Move Context to browser module. r=maja_zf 2017-10-16 17:47:35 +01:00
element.js Bug 1409036 - Return single anon element from WebDriver:FindElement. r=whimboo 2017-10-05 12:59:03 +01:00
error.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
evaluate.js Bug 1405018 - Consider current browsing context on staleness check. r=whimboo 2017-10-10 15:06:21 +01:00
event.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
format.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
frame.js Bug 1395176 - Use scoped remoteFrames instead of global. r=automatedtester 2017-08-30 17:37:33 +01:00
interaction.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
jar.mn Bug 1409379 - Move WindowState to new wm module. r=maja_zf 2017-10-17 14:20:52 +01:00
l10n.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
legacyaction.js Bug 1409037 - Bind this.resetValues after performing legacy action chain. r=whimboo 2017-10-05 13:01:23 +01:00
listener.js Bug 1405018 - Consider current browsing context on staleness check. r=whimboo 2017-10-10 15:06:21 +01:00
mach_commands.py Bug 1390595 - Exit with jsdoc return code from "mach marionette doc". r=whimboo 2017-08-15 20:00:42 +01:00
mach_test_package_commands.py
message.js Bug 1403577 - Fix Message, Command, and Response docs. r=whimboo 2017-09-30 18:15:03 +01:00
modal.js Bug 1407925 - Don't use application name but ID to determine Firefox. r=ato 2017-10-12 13:21:17 +02:00
moz.build Backed out changeset ddfc127526b2 (bug 1403222) for failing python/mozbuild/mozbuild/test/frontend/test_reader.py::TestBuildReader::test_schedules, at least for Linux asan opt builds. r=backout on a CLOSED TREE 2017-10-02 16:03:12 +02:00
navigate.js Bug 1406150 - Always throw exceptions by using 'new'. r=maja_zf 2017-10-06 14:07:13 +02:00
packets.js Bug 1406150 - Always throw exceptions by using 'new'. r=maja_zf 2017-10-06 14:07:13 +02:00
proxy.js Bug 1395176 - Lint testing/marionette for var usage. r=automatedtester 2017-08-30 17:38:23 +01:00
README.md Bug 1407990 - Move protocol definition to doc/Protocol.md. r=maja_zf 2017-10-13 17:08:57 +01:00
reftest.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
reftest.xul Bug 1363428 - Add reftest-specific endpoints to Marionette, r=ato 2017-06-24 12:03:11 +01:00
server.js Bug 1407925 - Don't use application name but ID to determine Firefox. r=ato 2017-10-12 13:21:17 +02:00
session.js Backed out changeset 0ce17eb985f1 (bug 1406763) 2017-10-12 20:51:38 +02:00
stream-utils.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
sync.js Bug 1404946 - Have PollPromise accept an options dictionary. r=whimboo 2017-10-02 17:13:57 +01:00
test_action.js Bug 1392318 - Use fromJSON convention in action module. r=automatedtester 2017-08-21 18:00:31 +01:00
test_assert.js Bug 1387559 - Drop session_id fallback for WebDriver:NewSession. r=automatedtester 2017-08-05 17:35:54 +01:00
test_browser.js Bug 1408508 - Move Context to browser module. r=maja_zf 2017-10-16 17:47:35 +01:00
test_cookie.js Bug 1407675 - Fix cookie creation via Marionette using IP address r=ato 2017-10-12 16:06:26 +01:00
test_dom.js Bug 1400225 - Subscribe to and relay web content DOM events. r=automatedtester,whimboo 2017-09-15 17:07:41 +01:00
test_element.js Bug 1275273 - Make WebDriver:IsElementSelected conform to spec. r=maja_zf 2017-10-11 15:24:03 +01:00
test_error.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
test_format.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
test_message.js Bug 1403577 - Rename TYPE identifier to Type. r=whimboo 2017-09-30 18:28:32 +01:00
test_navigate.js Bug 1374672 - Don't wait for page load events for identical hash parameters. r=automatedtester 2017-07-07 17:34:27 +02:00
test_session.js Bug 1406763 - Fix broken Assert.throws() calls for error class. r=ato 2017-10-12 17:56:31 +02:00
test_sync.js Bug 1404946 - Have PollPromise accept an options dictionary. r=whimboo 2017-10-02 17:13:57 +01:00
transport.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
unit.ini Bug 1408508 - Move Context to browser module. r=maja_zf 2017-10-16 17:47:35 +01:00
wm.js Bug 1409379 - Move WindowState to new wm module. r=maja_zf 2017-10-17 14:20:52 +01:00

Marionette

Marionette is the remote protocol that lets OOP programs communicate with, instrument, and control Gecko.

Description

Marionette is an automation driver for Mozillas 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. Dont ask if you can ask a question, just ask, and please wait for an answer as we might not be in your timezone.