Граф коммитов

39 Коммитов

Автор SHA1 Сообщение Дата
Henrik Skupin 0c0bf0c20e Bug 1309556 - Ensure to correctly shutdown the application for quit/restart when callbacks are used. r=ato
By using a callback the usual shutdown logic from quitApplication() is not executed and as such
will create a race-condition for the client when trying to re-connect to the server. To fix that
we have to stop the server from accepting new connections until the application has been completely
shutdown.

Also delete_session() has to be called for the default in_app shutdown logic and when using a callback.

MozReview-Commit-ID: GmIM2GGwQ2P

--HG--
extra : rebase_source : 56f8ba75f9297fa4de0a143fe5c5017529d0b528
2016-10-17 13:19:19 +02:00
Andreas Tolfsen 0754cd395f Bug 1282800 - Remove device capability from Marionette; r=automatedtester
MozReview-Commit-ID: 4ZlojpuwpUN

--HG--
extra : rebase_source : 94efba5f17f67d44a61d12f83231bbf66ebb44da
2016-06-28 15:26:49 +01:00
Karl Tomlinson b353eb8cda bug 1281293 increase marionette server listen backlog to 1 r=ato
to accept connections on Linux 4.4.
https://bugzilla.kernel.org/show_bug.cgi?id=119141

MozReview-Commit-ID: B5NMkHiGNg6

--HG--
extra : rebase_source : 1bc9322067ad8c3d2a97dfc86a90a0ad8429344f
2016-06-22 09:37:40 +12:00
David Burns 20c4d3ef26 Bug 1274408: Remove emulator support from Marionette in Gecko r=ato
The emulator code was originally hacks to allow us to instrument the emulator
from JavaScript in the B2G world. Since we no longer support this it is being
removed.

MozReview-Commit-ID: 3XDk21SFfUc

--HG--
extra : rebase_source : 63bc081c3ab37894b97b873fe142ee068b609318
2016-05-24 10:22:54 +01:00
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 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 a683538e91 Bug 1245153 - Employ new modules throughout Marionette; r=automatedtester
This change removes almost all the remaining uses of loadSubScript and
global scope pollution.  The only remaining use is for common.js, which
is resolved by a later bug for evaluating scripts.

MozReview-Commit-ID: 96h0yLElauq

--HG--
extra : histedit_source : 70f70a8aeffef3fca18addfa3fca575a9128e11a
extra : rebase_source : c251c58a7a086c606d3d3941adfeee26ecc49504
extra : commitid : 8XlX4zVZQUN
extra : source : 6bb93562a57656e6cc744c3c901a5ec80f9ec4d8
extra : intermediate-source : ad5bf32d8fef351a0bc4d6249bd16a34aa83f548
2016-02-03 18:56:02 +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 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 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 33ab7ed5af Bug 1245153 - Employ new modules throughout Marionette; r=automatedtester
This change removes almost all the remaining uses of loadSubScript and
global scope pollution.  The only remaining use is for common.js, which
is resolved by a later bug for evaluating scripts.

MozReview-Commit-ID: 96h0yLElauq

--HG--
extra : commitid : 8XlX4zVZQUN
extra : rebase_source : a5c8057c7ce0f52dc319f2e9d0937d6a4aab84d4
extra : source : 6bb93562a57656e6cc744c3c901a5ec80f9ec4d8
extra : histedit_source : 70f70a8aeffef3fca18addfa3fca575a9128e11a
2016-02-03 18:56:02 +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 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 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 0414e11cb2 Bug 1245153 - Employ new modules throughout Marionette; r=automatedtester
This change removes almost all the remaining uses of loadSubScript and
global scope pollution.  The only remaining use is for common.js, which
is resolved by a later bug for evaluating scripts.

--HG--
extra : commitid : 8XlX4zVZQUN
extra : rebase_source : b5420c4ba5298a7e972e7b14a13325bb8ea1a540
extra : histedit_source : 70f70a8aeffef3fca18addfa3fca575a9128e11a
2016-02-03 18:56:02 +00:00
Andreas Tolfsen 706c27ecab Bug 1240576 - Use Preferences.jsm throughout Marionette; r=automatedtester
A distinct advantage is that try...catch statements are no longer used
to control the flow of code.

--HG--
extra : rebase_source : e3dcadcf9fdfcfe9d227b571b5a830437428762c
extra : source : 2b6d148fd941363e4580137e5d6efc0eebdaf7bd
2016-01-18 22:05:30 +00:00
Wes Kocher 2a163a42fe Backed out changeset f3011bfcf124 (bug 1240576) for b2g xpcshell failures CLOSED TREE
--HG--
extra : commitid : F5140xAcYUE
2016-01-19 18:26:54 -08:00
Andreas Tolfsen f9e4c2678a Bug 1240576 - Use Preferences.jsm throughout Marionette; r=automatedtester
A distinct advantage is that try...catch statements are no longer used
to control the flow of code.

--HG--
extra : rebase_source : 402890020719b04245aa7c601f52752cb43c0666
2016-01-18 22:05:30 +00:00
Andreas Tolfsen c80cd8df4b Bug 1240182 - Use Log.Level.Debug for logging accepted and closed sockets; r=automatedtester
--HG--
extra : commitid : 4e9BJou6S9R
extra : amend_source : 57ac9a1373c2e2d9c971139ac8c6c5d4e346e4f8
2016-01-18 19:09:31 +00:00
Nigel Babu 6bba0d425e Backed out changeset 8ca79644b089 (bug 1240182) for xpcshell bustage on b2g
--HG--
extra : commitid : LoSqw9LOMMi
2016-01-19 10:49:12 +05:30
Andreas Tolfsen 2ed19eb03c Bug 1240182 - Use Log.Level.Debug for logging accepted and closed sockets; r=automatedtester
--HG--
extra : rebase_source : 52422526babd6b101a0b4395ce70419a6c1f7ee1
2016-01-18 19:09:31 +00: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
J. Ryan Stinnett 986f2a5cde Bug 1203159 - Rewrite DevTools resource URLs. r=ochameau 2015-10-21 12:48:53 -05:00
Carsten "Tomcat" Book 08997000eb Backed out 2 changesets (bug 1202902) to recking bug 1202902 to be able to reopen inbound on a CLOSED TREE
Backed out changeset 647025383676 (bug 1202902)
Backed out changeset d70c7fe532c6 (bug 1202902)
2015-10-07 14:03:21 +02:00
Sebastian Hengst cdcff6d0a7 Backed out changeset c6b267589d0d (bug 1202902) for Mulet Reftest, W3C Platform Test and other failures. r=backout a=backout on a CLOSED TREE 2015-10-07 13:36:26 +02:00
Carsten "Tomcat" Book e7ef778c9d Backed out 1 changesets (bug 1202902) for causing merge conflicts to mozilla-central
Backed out changeset cfc1820361f5 (bug 1202902)

--HG--
extra : rebase_source : 5d3db72337754bc7ab0ed0c30b2896100411ff92
2015-10-07 12:13:45 +02:00
Shu-yu Guo d06b6030f6 Bug 1202902 - Scripted fix the world. 2015-10-06 14:00:31 -07:00
Shu-yu Guo 52e365bb7b Bug 1202902 - Fix the world. (r=ato for marionette, rs=Mossop for rest) 2015-10-06 14:00:30 -07:00
J. Ryan Stinnett efe328f1b2 Bug 912121 - Rewrite require / import to match source tree. rs=devtools
In a following patch, all DevTools moz.build files will use DevToolsModules to
install JS modules at a path that corresponds directly to their source tree
location.  Here we rewrite all require and import calls to match the new
location that these files are installed to.

--HG--
extra : commitid : F2ItGm8ptRz
extra : rebase_source : b082fe4bf77e22e297e303fc601165ceff1c4cbc
2015-09-21 12:04:18 -05:00
Shu-yu Guo 64db2267cf Bug 1202902 - Mass replace toplevel 'let' with 'var' in preparation for global lexical scope. (rs=jorendorff) 2015-09-15 11:19:45 -07:00
Jonathan Griffin 479984afe5 Bug 1149618 - Remove SpecialPowers from Marionette, r=dburns 2015-05-18 16:36:15 -07:00
Jonathan Griffin 8824722da9 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 ac2f6d8d6e Bug 1149618 - Remove SpecialPowers from Marionette, r=dburns 2015-05-18 16:36:15 -07:00
Jonathan Griffin 9404a5bc8f Bug 1149347 - Don't initialize SpecialPowers unconditionally, r=ato 2015-03-31 09:44:02 -07:00
Andreas Tolfsen f1a6764225 Bug 1107706: Part 14: Fix quitApplication
--HG--
extra : rebase_source : f736191baab38061e6e59074830a40e838369f36
extra : source : 3b7cdf06f4b96ee708c5fc2573cebda852627568
2015-03-20 20:44:17 +00: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 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