Commit Graph

67 Commits

Author SHA1 Message Date
Andreas Tolfsen
90ba12749b Bug 1245153 - Remove testing/marionette/ChromeUtils.js; r=automatedtester
This does not appear to be in use.

MozReview-Commit-ID: B4M335Lb1UM

--HG--
extra : histedit_source : 241a896d0701c529cf56636eff567211198839cb
extra : rebase_source : 0b30f291ed1aee3f4073f2fea47ac4d9c6a6a576
extra : commitid : I8NVDyxCC0e
extra : source : 22321e6b65e987a76e42f880c8aa5a0427052259
extra : intermediate-source : 3b9e9a027fa7f020ac80c060938488f53f61049c
2016-02-03 19:18:30 +00:00
Andreas Tolfsen
b96bf07b7f Bug 1245153 - Rename interactions.js to interaction.js; r=automatedtester
MozReview-Commit-ID: F51ENbkcoR2

--HG--
rename : testing/marionette/interactions.js => testing/marionette/interaction.js
extra : histedit_source : 7269fae81673ad9630ad26e4506f978401c28c3f
extra : rebase_source : d2212a7701857f5a3ea37c400cd7cc49479f6bad
extra : commitid : BW8g2i1Wntt
extra : source : c1e0abbfa66e6289b25e3c6d45867c3b627d33d8
extra : intermediate-source : 6da8099573f3c84ab4361c9987441643488baf5b
2016-02-03 19:15:54 +00:00
Andreas Tolfsen
c9fdd91435 Bug 1245153 - Rename elements.js to element.js; r=automatedtester
MozReview-Commit-ID: KAGGXOHMvyM

--HG--
rename : testing/marionette/elements.js => testing/marionette/element.js
extra : histedit_source : d76eb69ad2f5781bcd7a4c0cda4f2f3c6abe840c
extra : rebase_source : d7eb17a424f7c542f0081d4ea938bd461f3583ae
extra : commitid : 77YYJxt23TN
extra : source : 80ae953819c81f7aad1c635311fb0ab5517ca1dd
extra : intermediate-source : 63a56310a1b5593eeec4d546c87c9e9c4c04252d
2016-02-03 19:14:10 +00:00
Andreas Tolfsen
85d23f2052 Bug 1245153 - Remove testing/marionette/atoms; r=automatedtester
MozReview-Commit-ID: 1aeRNnvqmcS

--HG--
rename : testing/marionette/atoms/atoms.js => testing/marionette/atom.js
extra : histedit_source : 3f864808e86d7cafbcb9edee3702f9cc16089b76
extra : rebase_source : 8d80f0505b8b0b3779eb04165c98c72f284ce573
extra : commitid : Ekqmuuhp0pC
extra : source : 3edb67388ad6bbdee9f735b2a99d1999a1af0a46
extra : amend_source : 142a6496da5d8c7edb72b27f27944add2ce0dc8d
extra : intermediate-source : 5fe42d498a2a4511b3d479c4d75b078817f05632
2016-02-03 19:00:46 +00:00
Andreas Tolfsen
1e6e0199c1 Bug 1245153 - Add event.js module and remove EventUtils.js and sendkeys.js from manifest; r=automatedtester
MozReview-Commit-ID: 9KqUpfp6KHG

--HG--
extra : histedit_source : 1fb7d46b1cbb9c7d1eaab2312d8795f8b23ae05c
extra : rebase_source : c600e7b08d512a77bf6684eb28002dd85488346b
extra : commitid : CCH3JVUF1X2
extra : source : 55f64197f6b5288d380aa5e128a687a7dc736bbf
extra : intermediate-source : b3be2d2f3ac1e2d10a39202e463178101a47e840
2016-02-03 18:56:45 +00:00
Carsten "Tomcat" Book
33e27d2555 Backed out 18 changesets (bug 1245153) for multiple test failures
Backed out changeset 18d54b8d4ae8 (bug 1245153)
Backed out changeset 98b6d0c053c0 (bug 1245153)
Backed out changeset c29a348930a4 (bug 1245153)
Backed out changeset f79252e92acc (bug 1245153)
Backed out changeset 9f3f1c358e47 (bug 1245153)
Backed out changeset 3b9e9a027fa7 (bug 1245153)
Backed out changeset 6da8099573f3 (bug 1245153)
Backed out changeset 63a56310a1b5 (bug 1245153)
Backed out changeset 5fe42d498a2a (bug 1245153)
Backed out changeset b3be2d2f3ac1 (bug 1245153)
Backed out changeset ad5bf32d8fef (bug 1245153)
Backed out changeset 68a6dda373d2 (bug 1245153)
Backed out changeset 6ebd9fde50c0 (bug 1245153)
Backed out changeset e41a5b41859a (bug 1245153)
Backed out changeset 048d70070751 (bug 1245153)
Backed out changeset eff85dc0eaa9 (bug 1245153)
Backed out changeset dc6460e0f336 (bug 1245153)
Backed out changeset 36526a2e8b00 (bug 1245153)

--HG--
rename : testing/marionette/event.js => testing/marionette/EventUtils.js
rename : testing/marionette/action.js => testing/marionette/actions.js
rename : testing/marionette/atom.js => testing/marionette/atoms/atoms.js
rename : testing/marionette/element.js => testing/marionette/elements.js
rename : testing/marionette/frame.js => testing/marionette/frame-manager.js
rename : testing/marionette/interaction.js => testing/marionette/interactions.js
2016-02-11 17:05:41 +01:00
Andreas Tolfsen
da4859314b Bug 1245153 - Rename frame-manager.js to frame.js; r=automatedtester
MozReview-Commit-ID: 3s6s2LccFac

--HG--
rename : testing/marionette/frame-manager.js => testing/marionette/frame.js
extra : commitid : 6oE1Q2AA0Cy
extra : rebase_source : 58df4e795ea6a7047930b23f455a03cfa39dfa8e
extra : source : 4c2b1902d7cddeb68196b33fc4fa5c7b736c36e9
extra : histedit_source : a956c6f503d49544af1bf0027534826b1a244089
2016-02-03 19:28:02 +00:00
Andreas Tolfsen
fd1a2f3260 Bug 1245153 - Rename actions.js to action.js; r=automatedtester
MozReview-Commit-ID: 58v7aMH2deS

--HG--
rename : testing/marionette/actions.js => testing/marionette/action.js
extra : commitid : CvejXEffZ33
extra : rebase_source : d7cb58bc1a84b4d96e0a011c36f2be22e72fea4b
extra : source : 1be5f60393a02b47cc21cccd6cc73f5e5dd9bcc7
extra : histedit_source : ffe0d88ffcef11c8faf7fc7f3c3432044847afe4
2016-02-03 19:25:28 +00:00
Andreas Tolfsen
a931963aee Bug 1245153 - Remove testing/marionette/ChromeUtils.js; r=automatedtester
This does not appear to be in use.

MozReview-Commit-ID: B4M335Lb1UM

--HG--
extra : commitid : I8NVDyxCC0e
extra : rebase_source : be6fddfe28cbe626114c38416c97075ee5cdf3a4
extra : source : 22321e6b65e987a76e42f880c8aa5a0427052259
extra : histedit_source : 241a896d0701c529cf56636eff567211198839cb
2016-02-03 19:18:30 +00:00
Andreas Tolfsen
8601465556 Bug 1245153 - Rename interactions.js to interaction.js; r=automatedtester
MozReview-Commit-ID: F51ENbkcoR2

--HG--
rename : testing/marionette/interactions.js => testing/marionette/interaction.js
extra : commitid : BW8g2i1Wntt
extra : rebase_source : a8fcc42b45fb2edeeec4fbee97a472fe0300bc66
extra : source : c1e0abbfa66e6289b25e3c6d45867c3b627d33d8
extra : histedit_source : 7269fae81673ad9630ad26e4506f978401c28c3f
2016-02-03 19:15:54 +00:00
Andreas Tolfsen
111c3bc1a1 Bug 1245153 - Rename elements.js to element.js; r=automatedtester
MozReview-Commit-ID: KAGGXOHMvyM

--HG--
rename : testing/marionette/elements.js => testing/marionette/element.js
extra : commitid : 77YYJxt23TN
extra : rebase_source : 9ed6f3e8d0b43e68716c462b83cdd718346b6c16
extra : source : 80ae953819c81f7aad1c635311fb0ab5517ca1dd
extra : histedit_source : d76eb69ad2f5781bcd7a4c0cda4f2f3c6abe840c
2016-02-03 19:14:10 +00:00
Andreas Tolfsen
e55d84e08c Bug 1245153 - Remove testing/marionette/atoms; r=automatedtester
MozReview-Commit-ID: 1aeRNnvqmcS

--HG--
rename : testing/marionette/atoms/atoms.js => testing/marionette/atom.js
extra : histedit_source : 3f864808e86d7cafbcb9edee3702f9cc16089b76
extra : rebase_source : 9af66df47570b37b18469940f7efbe7862da5725
extra : commitid : Ekqmuuhp0pC
extra : source : 3edb67388ad6bbdee9f735b2a99d1999a1af0a46
extra : amend_source : 142a6496da5d8c7edb72b27f27944add2ce0dc8d
2016-02-03 19:00:46 +00:00
Andreas Tolfsen
8f4d781566 Bug 1245153 - Add event.js module and remove EventUtils.js and sendkeys.js from manifest; r=automatedtester
MozReview-Commit-ID: 9KqUpfp6KHG

--HG--
extra : commitid : CCH3JVUF1X2
extra : rebase_source : 8216d548720828bdad8df2e856081605bf26ded8
extra : source : 55f64197f6b5288d380aa5e128a687a7dc736bbf
extra : histedit_source : 1fb7d46b1cbb9c7d1eaab2312d8795f8b23ae05c
2016-02-03 18:56:45 +00:00
Carsten "Tomcat" Book
d07b3125f8 Backed out 16 changesets (bug 1245153) for mochitest test-bustage on a CLOSED TREE
Backed out changeset 30c8ec933737 (bug 1245153)
Backed out changeset 4c2b1902d7cd (bug 1245153)
Backed out changeset 1be5f60393a0 (bug 1245153)
Backed out changeset 22321e6b65e9 (bug 1245153)
Backed out changeset c1e0abbfa66e (bug 1245153)
Backed out changeset 80ae953819c8 (bug 1245153)
Backed out changeset 3edb67388ad6 (bug 1245153)
Backed out changeset 55f64197f6b5 (bug 1245153)
Backed out changeset 6bb93562a576 (bug 1245153)
Backed out changeset 5da7628c3767 (bug 1245153)
Backed out changeset bd41e4ab829d (bug 1245153)
Backed out changeset ee7ee24cc65e (bug 1245153)
Backed out changeset 4b2a5ee7199e (bug 1245153)
Backed out changeset d75ad1397656 (bug 1245153)
Backed out changeset 1f5e37f8e446 (bug 1245153)
Backed out changeset aec0a0166685 (bug 1245153)

--HG--
rename : testing/marionette/event.js => testing/marionette/EventUtils.js
rename : testing/marionette/action.js => testing/marionette/actions.js
rename : testing/marionette/atom.js => testing/marionette/atoms/atoms.js
rename : testing/marionette/element.js => testing/marionette/elements.js
rename : testing/marionette/frame.js => testing/marionette/frame-manager.js
rename : testing/marionette/interaction.js => testing/marionette/interactions.js
extra : rebase_source : 11bba1116e87ed79fa72f24ff41216a6e3fb00d6
2016-02-05 14:18:19 +01:00
Andreas Tolfsen
2b8a4b3ca1 Bug 1245153 - Rename frame-manager.js to frame.js; r=automatedtester
--HG--
rename : testing/marionette/frame-manager.js => testing/marionette/frame.js
extra : commitid : 6oE1Q2AA0Cy
extra : rebase_source : 3416ffd125751cd5e9bff235daa439e67fd84811
extra : histedit_source : a956c6f503d49544af1bf0027534826b1a244089
2016-02-03 19:28:02 +00:00
Andreas Tolfsen
0c901fb28c Bug 1245153 - Rename actions.js to action.js; r=automatedtester
--HG--
rename : testing/marionette/actions.js => testing/marionette/action.js
extra : commitid : CvejXEffZ33
extra : rebase_source : 36f2508ade5513896a171ab0b8398be8f0fc0c0e
extra : histedit_source : ffe0d88ffcef11c8faf7fc7f3c3432044847afe4
2016-02-03 19:25:28 +00:00
Andreas Tolfsen
4f7b487878 Bug 1245153 - Remove testing/marionette/ChromeUtils.js; r=automatedtester
This does not appear to be in use.

--HG--
extra : commitid : I8NVDyxCC0e
extra : rebase_source : 757f75ecd813873513fb9bd56625c59d3d0936b3
extra : histedit_source : 241a896d0701c529cf56636eff567211198839cb
2016-02-03 19:18:30 +00:00
Andreas Tolfsen
e08f76bd5b Bug 1245153 - Rename interactions.js to interaction.js; r=automatedtester
--HG--
rename : testing/marionette/interactions.js => testing/marionette/interaction.js
extra : commitid : BW8g2i1Wntt
extra : rebase_source : b9fb3a3f1cd9a9a1cd1e2ffd71d64bef5d2b3e52
extra : histedit_source : 7269fae81673ad9630ad26e4506f978401c28c3f
2016-02-03 19:15:54 +00:00
Andreas Tolfsen
462619ecc4 Bug 1245153 - Rename elements.js to element.js; r=automatedtester
--HG--
rename : testing/marionette/elements.js => testing/marionette/element.js
extra : commitid : 77YYJxt23TN
extra : rebase_source : 987be9441ad296eaf9e4a1624d9af96d496d687d
extra : histedit_source : d76eb69ad2f5781bcd7a4c0cda4f2f3c6abe840c
2016-02-03 19:14:10 +00:00
Andreas Tolfsen
c547c09644 Bug 1245153 - Remove testing/marionette/atoms; r=automatedtester
--HG--
rename : testing/marionette/atoms/atoms.js => testing/marionette/atom.js
extra : commitid : Ekqmuuhp0pC
extra : rebase_source : 2de6bdf828d578821006adbf6b79772ec16e0cfa
extra : amend_source : 142a6496da5d8c7edb72b27f27944add2ce0dc8d
extra : histedit_source : 3f864808e86d7cafbcb9edee3702f9cc16089b76
2016-02-03 19:00:46 +00:00
Andreas Tolfsen
927bc3955d Bug 1245153 - Add event.js module and remove EventUtils.js and sendkeys.js from manifest; r=automatedtester
--HG--
extra : commitid : CCH3JVUF1X2
extra : rebase_source : 728a6d2e6aea14765a2bb711f3cb95a1695b942b
extra : histedit_source : 1fb7d46b1cbb9c7d1eaab2312d8795f8b23ae05c
2016-02-03 18:56:45 +00:00
Peter Van der Beken
46af3ae4ab Bug 1027734 - Convert mozPay to WebIDL. r=bzbarsky.
--HG--
rename : dom/payment/interfaces/nsINavigatorPayment.idl => dom/payment/interfaces/nsIPaymentContentHelperService.idl
rename : testing/specialpowers/content/MockPaymentsUIGlue.jsm => dom/payment/tests/mochitest/MockPaymentsUIChromeScript.js
extra : rebase_source : 638fdf45b6a13ceee98c5e066505d8858abbfd3d
2016-01-26 18:38:03 +01:00
Yura Zenevich
5132ceb11b Bug 1238744 - centralizing interactions into its own file. r=ato 2016-01-17 12:22:22 -05:00
Andreas Tolfsen
3421774080 Bug 1211489: Provide message sequencing in Marionette
Message sequencing allows Marionette to provide an asynchronous,
parallel pipelining user-facing interface, limit chances of payload
race conditions, and remove stylistic inconsistencies in how commands
and responses are dispatched internally.

Clients that deliver a blocking WebDriver interface are still be expected
to not send further command requests before the response from the last
command has come back, but if they still happen to do so because of
programming error or otherwise, no harm will be done.  This will guard
against bugs such as bug 1207125.

This patch formalises the command and response concepts, and applies
these concepts to emulator callbacks. Through the new message format,
Marionette is able to provide two-way parallel communication.  In other
words, the server will be able to instruct the client to perform a
command in a non ad-hoc way.

runEmulatorCmd and runEmulatorShell are both turned into command
instructions originating from the server.  This resolves a lot of
technical debt in the server code because they are no longer special-cased
to circumvent the dispatching technique used for all other commands;
commands may originate from either the client or the server providing
parallel pipelining enforced through message sequencing:

             client      server
               |            |
    msgid=1    |----------->|
               |  command   |
               |            |
    msgid=2    |<-----------|
               |  command   |
               |            |
    msgid=2    |----------->|
               |  response  |
               |            |
    msgid=1    |<-----------|
               |  response  |
               |            |

The protocol now consists of a "Command" message and the corresponding
"Response" message.  A "Response" message must always be sent in reply
to a "Command" message.

This bumps the Marionette protocol level to 3.

r=dburns
r=jgriffin

--HG--
extra : commitid : 1kz4Oa2q3Un
2015-09-26 17:12:01 +01:00
Sebastian Hengst
2bc8fc4402 Backed out changeset c2aa06a2ab49 (bug 1211489) for Gij(39) failures. r=backout 2015-11-26 23:47:34 +01:00
Andreas Tolfsen
86bd46756a Bug 1211489: Provide message sequencing in Marionette
Message sequencing allows Marionette to provide an asynchronous,
parallel pipelining user-facing interface, limit chances of payload
race conditions, and remove stylistic inconsistencies in how commands
and responses are dispatched internally.

Clients that deliver a blocking WebDriver interface are still be expected
to not send further command requests before the response from the last
command has come back, but if they still happen to do so because of
programming error or otherwise, no harm will be done.  This will guard
against bugs such as bug 1207125.

This patch formalises the command and response concepts, and applies
these concepts to emulator callbacks. Through the new message format,
Marionette is able to provide two-way parallel communication.  In other
words, the server will be able to instruct the client to perform a
command in a non ad-hoc way.

runEmulatorCmd and runEmulatorShell are both turned into command
instructions originating from the server.  This resolves a lot of
technical debt in the server code because they are no longer special-cased
to circumvent the dispatching technique used for all other commands;
commands may originate from either the client or the server providing
parallel pipelining enforced through message sequencing:

             client      server
               |            |
    msgid=1    |----------->|
               |  command   |
               |            |
    msgid=2    |<-----------|
               |  command   |
               |            |
    msgid=2    |----------->|
               |  response  |
               |            |
    msgid=1    |<-----------|
               |  response  |
               |            |

The protocol now consists of a "Command" message and the corresponding
"Response" message.  A "Response" message must always be sent in reply
to a "Command" message.

This bumps the Marionette protocol level to 3.

r=dburns
r=jgriffin

--HG--
extra : commitid : 2upWRuXyqPF
extra : rebase_source : f384801e209e4b49ef57055fd550c3c435ece4ef
2015-09-26 17:12:01 +01:00
Andreas Tolfsen
3ddc4dcff5 Bug 1223907: Refactor cookies in Marionette
Moves most of the cookie implementation to a new file,
testing/marionette/cookies.js.  The new Cookies class encapsulates all
APIs for manipulating and querying cookies from content space.

It communicates with chrome space, where the cookie manager lives, through
a new SyncContentSender provided by testing/marionette/proxy.js.  This new
interface provides synchronous and transparent communication from content
to chrome, not dissimilar from how the original listener proxy works.

r=dburns

--HG--
extra : commitid : 7jF7OFSx4Yk
extra : rebase_source : 8fc73fb59196f8076e85673d002c42e2ae458ad0
2015-11-13 13:35:22 +00:00
Andrew Halberstadt
1252d85394 Bug 1219442 - Re-write specialpowers as a restartless addon, r=jmaher
In order to meet the addon signing requirement for tests, specialpowers
needs to be installed at gecko runtime. This means it must be restartless.
This patch packages specialpowers as a restartless addon, but it does not
yet install it at runtime.

--HG--
rename : testing/specialpowers/components/SpecialPowersObserver.js => testing/specialpowers/content/SpecialPowersObserver.jsm
extra : commitid : Bbg8gFten8S
extra : rebase_source : 99d0b841a1f8f9eb6b6ca846363a158836482e57
2015-11-05 10:00:59 -05:00
Andreas Tolfsen
30ee512caa Bug 1213797: Refactor screen capture and SVG document support
Errors thrown by takeScreenshot used to be silently ignored.  When the
command started using the new dispatching technique in bug 1202663,
it was surfaced we do not support taking screen captures of SVG documents.

Since this is a requirement for Web Platform Tests, this patch corrects
the wrong assumptions about document body and document element.

This patch also significantly refactors the screen capture code, but
only uses the new implementation in contnent space, since some further
modifications are required to use it in chrome.

r=dburns
r=jgriffin

--HG--
extra : commitid : DdCIEpd5PEJ
extra : rebase_source : 7357010f992d7f995765c685000892cc59d9ec9a
2015-10-13 16:52:26 +01:00
Andreas Tolfsen
89570930a6 Bug 1159219: Make ContentSender a separate module
r=dburns

--HG--
extra : rebase_source : dd217232c478e94673ee416dd1d19ae5f37bce2a
extra : source : a0fa5dabf485fd6860e4dd150158f59da2ca6692
2015-04-28 14:25:37 +01:00
Andreas Tolfsen
2cc5a43bfe Bug 1107706: Part 12: Drop marionette-* prefix on files
--HG--
rename : testing/marionette/marionette-actions.js => testing/marionette/actions.js
rename : testing/marionette/marionette-common.js => testing/marionette/common.js
rename : testing/marionette/marionette-elements.js => testing/marionette/elements.js
rename : testing/marionette/marionette-frame-manager.js => testing/marionette/frame-manager.js
rename : testing/marionette/marionette-listener.js => testing/marionette/listener.js
rename : testing/marionette/marionette-sendkeys.js => testing/marionette/sendkeys.js
rename : testing/marionette/marionette-simpletest.js => testing/marionette/simpletest.js
extra : rebase_source : 5cb9ed597e71980eabd15a01da2d0322be671830
extra : source : 91b35cb3308bc80d736e63434f9702e73115c41f
2015-03-23 21:32:03 +00:00
Andreas Tolfsen
8a3c86c0ad Bug 1107706: Part 11: Global modal dialogue support
--HG--
extra : rebase_source : d156204d3241920fd331a52e175316ecc26f153e
extra : source : 43c58b21251ffbbdfe695b4d2d2a2d5587356b41
2015-03-20 15:46:46 +00:00
Andreas Tolfsen
3d22164f70 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.

--HG--
extra : rebase_source : c94b8cd6b4e61addd3fe42c4b94a26ee987fc34a
extra : source : 7f506cdb77b88994ba9f5b13cc936a99a403f1fb
2015-03-19 21:12:58 +00:00
Andreas Tolfsen
50af3f4c74 Bug 1107706: Part 4: Add dispatching mechanism to encapsulate connection
The dispatcher is analogous to the client socket connection, and handles
receiving packets and closing connections.

It also encompasses some of the functionality needed to establish the
devtools and Marionette connection, that previously used to live in
MarionetteServerConnection in marionette-server.js.

For each connection, recognised commands will be forwarded to the command
processor (command.js) unless a handler is defined in Dispatcher.requests.

--HG--
extra : rebase_source : 13cc697ba45addb6191df7d2f7ea1133194177ce
extra : source : 7abef4010b3094d3f276fc16cfbae43b55da7b0d
2015-03-18 12:27:29 +00:00
Andreas Tolfsen
a5a1831f0f Bug 1107706: Part 3: Add a command processor to Marionette
The command processor receives messages, processes them, and wraps the
execution of the command implementations.  This allows commands to throw
errors without worrying about the side effects.

This patch also introduces a Response object which correspondingly wraps
the replies to the client.  This shifts the responsibility of managing
the correctness of the packets from the commands to this.

--HG--
extra : rebase_source : 92e0ee1b3f7034a548a8a36705504b307906cf23
extra : source : b0d00faceef4e348cc99c020f01d59c7933677b7
2015-03-17 14:49:27 +00:00
Andreas Tolfsen
27cddf9d2f Bug 1107706: Part 2: Add error module and WebDriver error objects
Adds the ability to throw error objects for WebDriver statuses, and an
error module with convenience functions for manipulation of these and
for handling other error related operations.

--HG--
extra : rebase_source : 5ee047fd7a8e0ecea918e422cd12273b78a78153
extra : source : 0c074cdc434e3c8ba412db44aece7b1840198fe5
2015-03-17 14:27:20 +00:00
Wes Kocher
954df9f7bc Backed out 15 changesets (bug 1107706) for marionette bustage CLOSED TREE
Backed out changeset 3c25064e24da (bug 1107706)
Backed out changeset 3b7cdf06f4b9 (bug 1107706)
Backed out changeset ec2b1317d3c6 (bug 1107706)
Backed out changeset 91b35cb3308b (bug 1107706)
Backed out changeset 43c58b21251f (bug 1107706)
Backed out changeset e3ddaf8aae39 (bug 1107706)
Backed out changeset 0cd696bfc3b0 (bug 1107706)
Backed out changeset eeb3d39874b1 (bug 1107706)
Backed out changeset 7bc309f733fa (bug 1107706)
Backed out changeset 69669d0e6ddc (bug 1107706)
Backed out changeset 7f506cdb77b8 (bug 1107706)
Backed out changeset 7abef4010b30 (bug 1107706)
Backed out changeset b0d00faceef4 (bug 1107706)
Backed out changeset 0c074cdc434e (bug 1107706)
Backed out changeset 3b449f8dd470 (bug 1107706)

--HG--
rename : testing/marionette/actions.js => testing/marionette/marionette-actions.js
rename : testing/marionette/common.js => testing/marionette/marionette-common.js
rename : testing/marionette/elements.js => testing/marionette/marionette-elements.js
rename : testing/marionette/frame-manager.js => testing/marionette/marionette-frame-manager.js
rename : testing/marionette/listener.js => testing/marionette/marionette-listener.js
rename : testing/marionette/sendkeys.js => testing/marionette/marionette-sendkeys.js
rename : testing/marionette/simpletest.js => testing/marionette/marionette-simpletest.js
2015-03-23 18:48:07 -07:00
Andreas Tolfsen
82d54fa5b0 Bug 1107706: Part 12: Drop marionette-* prefix on files
--HG--
rename : testing/marionette/marionette-actions.js => testing/marionette/actions.js
rename : testing/marionette/marionette-common.js => testing/marionette/common.js
rename : testing/marionette/marionette-elements.js => testing/marionette/elements.js
rename : testing/marionette/marionette-frame-manager.js => testing/marionette/frame-manager.js
rename : testing/marionette/marionette-listener.js => testing/marionette/listener.js
rename : testing/marionette/marionette-sendkeys.js => testing/marionette/sendkeys.js
rename : testing/marionette/marionette-simpletest.js => testing/marionette/simpletest.js
extra : rebase_source : 4508c93a8928f3b183076cfbf49690faafd4b880
2015-03-23 21:32:03 +00:00
Andreas Tolfsen
53b157db9e Bug 1107706: Part 11: Global modal dialogue support
--HG--
extra : rebase_source : 7936cd07ae30df9d2cb5baeb00841ad7cabec3a3
2015-03-20 15:46:46 +00:00
Andreas Tolfsen
ebdf7bb882 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.

--HG--
extra : rebase_source : 2513f6e88b79b2420757e66890d5ca49d5266318
2015-03-19 21:12:58 +00:00
Andreas Tolfsen
4e6729590a Bug 1107706: Part 4: Add dispatching mechanism to encapsulate connection
The dispatcher is analogous to the client socket connection, and handles
receiving packets and closing connections.

It also encompasses some of the functionality needed to establish the
devtools and Marionette connection, that previously used to live in
MarionetteServerConnection in marionette-server.js.

For each connection, recognised commands will be forwarded to the command
processor (command.js) unless a handler is defined in Dispatcher.requests.

--HG--
extra : rebase_source : 2cf2e3ab1ab8b1044aff798b461dfee9b08cf7a4
2015-03-18 12:27:29 +00:00
Andreas Tolfsen
a54df09114 Bug 1107706: Part 3: Add a command processor to Marionette
The command processor receives messages, processes them, and wraps the
execution of the command implementations.  This allows commands to throw
errors without worrying about the side effects.

This patch also introduces a Response object which correspondingly wraps
the replies to the client.  This shifts the responsibility of managing
the correctness of the packets from the commands to this.

--HG--
extra : rebase_source : cfab78a0919b0cc95db9dfdf47b2b5e29a15094b
2015-03-17 14:49:27 +00:00
Andreas Tolfsen
81b0e98226 Bug 1107706: Part 2: Add error module and WebDriver error objects
Adds the ability to throw error objects for WebDriver statuses, and an
error module with convenience functions for manipulation of these and
for handling other error related operations.

--HG--
extra : rebase_source : 8095e97f974cdf157cb3100a4249a6ae1a6451dc
2015-03-17 14:27:20 +00:00
Chris Manchester
7c534982bc Bug 1135846 - Expose marionette's actions code to chrome scope where applicable. r=dburns
--HG--
extra : transplant_source : %1E%A0Q3%FBa%03%3E%E7%DE%178D%25K%A6%BC%2A%895
2015-03-19 18:41:19 -07:00
Alexandre Lissy
791808dd5f Bug 1130287 - Expose isB2G in SpecialPowers. r=sicking
Some mochitests needs to behave differently when ran on B2G Desktop.
Currently, this is implemented using user agent string detection,
mostly relying on "Mobile" being present and "Android" being absent.
This is only true on B2G Desktop when ran on Try because the mozconfig
defined FXOS_SIMULATOR and that, per bug 1115935, this substring is only
added in this case, but not if just MOZ_B2G is defined. A better
approach is to expose 'isB2G' in SpecialPowers for this kind of
detection.
2015-02-08 10:09:00 +01:00
Fernando Jimenez
d48b684909 Bug 1097928 - Convert MozPaymentProvider to WebIDL. r=bholley,fabrice 2015-01-19 14:50:32 +01:00
Malini Das
d35ca502b4 Bug 1038864 - Marionette find element fails on social chat component. r=automatedtester 2014-07-28 14:49:00 +02:00
Alexandre Poirot
33a65e9ccd Bug 965257 - Expose Assert.jsm in mochitest-plain chrome script. r=ted 2014-03-25 12:03:21 -04:00
Malini Das
00bfcedc58 Bug 779284 - Implement B2G Modal dialog handling to Marionette, r=jgriffin,mdas 2013-09-19 13:35:19 -04:00
Jonathan Griffin
f216c745e6 Bug 779284 - Back out 705d668fb81b for suspected perf regressions, a=test-only 2013-08-25 11:23:19 -07:00