Commit Graph

7 Commits

Author SHA1 Message Date
Jonathan Griffin
46f72e36a5 Bug 1149618 - Remove SpecialPowers from Marionette, r=dburns 2015-05-18 16:36:15 -07:00
Jonathan Griffin
c1efbce967 Backout cc15c275b1e3 (Bug 1149618) on a CLOSED TREE for suspected debug emulator bustage, a=bustage 2015-05-19 19:35:38 -07:00
Jonathan Griffin
831992c796 Bug 1149618 - Remove SpecialPowers from Marionette, r=dburns 2015-05-18 16:36:15 -07:00
Jonathan Griffin
ee3a23ffc4 Bug 1149347 - Don't initialize SpecialPowers unconditionally, r=ato 2015-03-31 09:44:02 -07:00
Andreas Tolfsen
7af4fbe519 Bug 1107706: Part 14: Fix quitApplication 2015-03-20 20:44:17 +00:00
Andreas Tolfsen
956a3dbd1c Bug 1107706: Part 12: Drop marionette-* prefix on files 2015-03-23 21:32:03 +00:00
Andreas Tolfsen
94e00faccb Bug 1107706: Part 5: Refactor Marionette chrome/content communication
The Marionette server handles requests separately with a global sense
of state which makes it hard to introduce generalised behaviour to many
commands.  This effectively slows down protocol implementation because
each command request individually needs to do heavy lifting.

This patch introduces a series of abstractions that separates out the
WebDriver implementation to a new class, GeckoDriver.  It also features
a new interface to mediate messages between the chrome- and content
processes.

This allows the code living in the chrome context to make direct calls
on the listener through a promise-based API:

	let listener = new ListenerProxy(mm, sendCallback);
	let res = yield listener.functionOnListener("arg1", "arg2");

The MarionetteServer class that used to live in marionette-server.js
has now been moved to server.js, while the WebDriver implementation
has moved to driver.js.  By introducing more stringent separation,
MarionetteServer now properly encapsulates the server process allowing
us to unit tests for it in the future.

The patch is a refactor in the truest sense, in the meaning that no
input or output should have changed.
2015-03-19 21:12:58 +00:00