gecko-dev/testing/marionette
Andreas Tolfsen 681ae6c180 Bug 1430077 - Separate clearing session state from deregistering listeners. r=whimboo
With the forthcoming window tracking changes the message listeners of
the content frame script are left listening for the duration of the
Marionette lifetime, and not for the duration of the Marionette session.

To prepare for the window tracking refactoring, we will want to
remove message listeners separately from clearing the session state.
Functionally, this patch changes nothing in Marionette for the moment,
except we send two IPC messages to the frame script instead of one.

MozReview-Commit-ID: DwVBCpvk9V9

--HG--
extra : rebase_source : d473a51209eeaf20967303af5aec7376e38fd283
2018-01-12 13:30:23 +00:00
..
chrome
client Bug 1429562 - Remove obsolete optional parameter `reset_session_id` from `delete_session`. r=ato 2018-01-11 12:24:15 +01:00
components Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
doc NO BUG - Regenerate Marionette API docs. r=me 2018-01-15 14:01:32 +00:00
harness Bug 1354211 - Remove Mn test for WebDriver:ElementClear. r=automatedtester 2017-12-31 15:08:22 +00:00
prefs Bug 1376128 - Expose unrecognised eslint globals; r=automatedtester 2017-06-28 11:04:14 -07:00
puppeteer Bug 1408044 - fix miscellaneous tests that depended on about: existing, r=dao 2017-11-15 17:19:33 +00:00
.eslintrc.js Bug 1420577 - Add template literals to eslint max-len ignore list. r=ato 2017-12-05 08:06:17 +01:00
.jsdoc.js NO BUG - Correct README inclusion in Marionette API docs. r=me 2018-01-15 14:01:00 +00:00
CONTRIBUTING.md NO BUG - Fix links in contribution advice. r=me 2018-01-02 14:08:25 +00:00
README.md Bug 1425708 - Link to contribution and source docs in Marionette README. r=maja_zf 2018-01-02 12:20:05 +00:00
accessibility.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
action.js Bug 1385476 - Synthesize dblclick MouseEvent when performing webdriver actions; r=maja_zf 2017-11-24 15:53:57 -05:00
addon.js Bug 1408066 - Addon.js install fails if path is incorrect. r=whimboo 2017-10-19 23:31:52 -07:00
assert.js Bug 1430109 - Combine assert.window and assert.contentBrowser. r=maja_zf 2018-01-15 14:02:39 +00:00
atom.js Bug 1354211 - Remove clearElement atom. r=automatedtester 2017-12-31 14:57:11 +00:00
browser.js Bug 1430109 - Combine assert.window and assert.contentBrowser. r=maja_zf 2018-01-15 14:02:39 +00: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 1415828 - Accept cookie domains with leading dot character r=ato 2017-11-23 15:33:30 +00:00
dom.js Bug 1405279 - Remove unused variables. r=whimboo 2017-10-03 14:35:47 +01:00
driver.js Bug 1430077 - Separate clearing session state from deregistering listeners. r=whimboo 2018-01-12 13:30:23 +00:00
element.js Bug 1354211 - Add element.isEditingHost and element.isEditable. r=automatedtester 2017-12-31 14:52:46 +00:00
error.js Bug 1408454 - Move error.pprint to format.pprint. r=whimboo 2017-10-13 17:59:30 +01:00
evaluate.js Bug 1106913 - Detect cyclic objects when marshaling objects. r=whimboo 2017-11-24 18:21:17 +00:00
event.js Bug 1354211 - Add shorthand for emulating DOM blur event. r=automatedtester 2017-12-31 14:36:03 +00:00
format.js Bug 1422593 - Pretty print WindowProxy and ChromeWindow. r=whimboo 2017-12-03 15:48:13 +00:00
interaction.js Bug 1354211 - Make WebDriver:ElementClear conforming to standard. r=automatedtester 2017-12-31 14:53:42 +00:00
jar.mn Bug 1423282 - Remove last remenants of frame.Manager. r=automatedtester 2017-12-05 21:28:59 +00:00
l10n.js Bug 1408044 - stop using about.dtd as an example in firefox-ui/puppeteer/marionette docs/tests, r=whimboo 2017-11-14 23:37:04 +00:00
legacyaction.js Bug 1423282 - Drop MarionetteFrame:getInterruptedState IPC message. r=automatedtester,maja_zf 2017-12-05 19:22:53 +00:00
listener.js Bug 1430077 - Separate clearing session state from deregistering listeners. r=whimboo 2018-01-12 13:30:23 +00:00
mach_commands.py Bug 1209463 - [test] Use a common logger across suites from |mach test| and other test commands, r=gbrown 2017-11-23 13:04:19 -05:00
mach_test_package_commands.py
message.js Bug 1419538 - Marionette log entries should show object details. r=ato 2017-11-30 15:09:32 +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 6d539e4a02bd (bug 1403519) for lint failures on a CLOSED TREE 2018-01-11 22:32:27 +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 1429091 - Use global message manager in AsyncMessageChannel. r=maja_zf 2018-01-09 15:53:46 +00:00
reftest.js Bug 1430109 - Combine assert.window and assert.contentBrowser. r=maja_zf 2018-01-15 14:02:39 +00:00
reftest.xul Bug 1363428 - Add reftest-specific endpoints to Marionette, r=ato 2017-06-24 12:03:11 +01:00
server.js Bug 1430119 - Fix API documentation in testing/marionette/server.js. r=maja_zf 2018-01-12 14:41:35 +00:00
session.js Bug 1420577 - Improve failure messages for invalid proxy configurations. r=ato 2017-12-04 23:32:44 +01: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 1400256 - Adapt actions for implicitly unmarshaled elements. r=automatedtester 2017-10-09 19:55:27 +01:00
test_assert.js Bug 1430109 - Combine assert.window and assert.contentBrowser. r=maja_zf 2018-01-15 14:02:39 +00:00
test_browser.js Backed out changeset 286a5ba56cec (bug 1408508) for eslint failure at testing/marionette/driver.js:881:50 | 'resp' is defined but never used. r=backout 2017-10-18 20:28:15 +02:00
test_cookie.js Bug 1415828 - Accept cookie domains with leading dot character r=ato 2017-11-23 15:33:30 +00: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 1354211 - Add element.isEditingHost and element.isEditable. r=automatedtester 2017-12-31 14:52:46 +00:00
test_error.js Bug 1405474 - Add more attributes for elements in pprint output. r=ato 2017-10-18 20:54:13 +02:00
test_evaluate.js Bug 1410796 - Add basic evaluate.toJSON tests. r=whimboo 2017-10-31 20:02:07 +00:00
test_format.js Bug 1405474 - Add more attributes for elements in pprint output. r=ato 2017-10-18 20:54:13 +02: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 1321516 - Switch to WebDriver conformant interactability checks. r=ato 2017-11-01 22:18:39 +01: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 1410796 - Add basic evaluate.toJSON tests. r=whimboo 2017-10-31 20:02:07 +00:00
wm.js Bug 1409379 - Move WindowState to new wm module. r=maja_zf 2017-10-17 14:20:52 +01:00

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 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.

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