Updating Marionette to click on the centre of the first client rect instead of
clicking on the centre of the bounding rect. This allows us to click on multiline
links and other items where where are mutliple DOMRects associated with
an element.
Passing the version keyword to argparse's constructor implicitly adds
-v and --version flags that conflicts with the -v/--verbose flag that
is added in BaseMarionetteArguments.
This removes -v as an alias to --version, which unbreaks testing on try
because it uses runtests.py.
It's perhaps worth mentioning that try uses runtests.py because it does
not (yet) have a full checkout of the source when it runs the tests.
Adds -v and --verbose flags to the `./mach marionette-test` command to
increase the verbosity of the Marionette logging output.
A single -v corresponds to Log.Level.Debug and above. A double -vv
or more corresponds to Log.Level.Trace and above.
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.
Services.appinfo is populated by the target compile system's OS name,
taken from the OS_TARGET configure variable.
By using Services.sysinfo instead, we are returning the effective current
local system's operating system, which is similar to what is found in
Gecko's UA string.
r=dburns
This is needed to install unsigned addons in developer mode. A special pref that
can only be set at runtime will determine whether or not unsigned addons can be
installed. So unsigned addons required for testing will need to be restartless
and installed on the fly. The normal method of dropping the addon in the profile
folder will no longer work.
The Python client does not currently exhaust all the command
requests originating from the server as pointed out by :bhsu in
https://bugzilla.mozilla.org/show_bug.cgi?id=1211503#c12.
This prevents making multiple calls to runEmulatorCmd and runEmulatorShell
inside executeScript/executeJSScript/executeAsyncScript. This failure
makes marionette-webapi fail.
We loop through all the commands originating from the server until we
get sent back a response.
r=dburns
The default behaviour is unchanged: gecko.log and logcat are saved to the
cwd, a temporary Firefox profile is cloned or created in TMP.
When a path is specified via --workspace, gecko.log, logcat and the Firefox
profile directory are all saved there instead. A profile saved in the
workspace does not get deleted at the end of a session unless it's a clone.
The Python client does not currently exhaust all the command
requests originating from the server as pointed out by :bhsu in
https://bugzilla.mozilla.org/show_bug.cgi?id=1211503#c12.
This prevents making multiple calls to runEmulatorCmd and runEmulatorShell
inside executeScript/executeJSScript/executeAsyncScript. This failure
makes marionette-webapi fail.
We loop through all the commands originating from the server until we
get sent back a response.
r=dburns
Services.appinfo is populated by the target compile system's OS name,
taken from the OS_TARGET configure variable.
By using Services.sysinfo instead, we are returning the effective current
local system's operating system, which is similar to what is found in
Gecko's UA string.
r=dburns
* BaseMarionetteRunner: any change to self.bin resets self.marionette and
self.tests, so you change binaries between calls to run_tests()
* Refactor runtests.py to make it easier to extend/customize the harness
for different test suites. Add more error handling.
Prepare release of new Python packages for Marionette, with the following
versions:
marionette-client 1.1.0
marionette-driver 1.1.0
marionette-transport 1.0.0
r=dburns
Futures-proofs the Marionette Python client to have support for level
3 of the Marionette protocol outlined in bug 1211489.
This patch changes the marionette-transport API most notably by renaming
the MarionetteTransport class to TcpTransport and by splitting the
receive-capabilities of TcpTransport.send into a new function called
request.
Furthermore it introduces a message data structure for dealing with
incoming responses and commands, and for marshaling messages to send in
order to support all three protocol levels.
r=dburns
r=jgriffin
We already had focus changing tests covered by
_test_focus_obtained_by_long_press(). This patch adds tests for focus
not being changed from an editable element after long-pressing on a
non-selectable element.
These tests will fail after reverting this change.
"Bug 1197739 - Do not change focus too early unless the frame is selectable"
https://hg.mozilla.org/mozilla-central/rev/4f2822bbbdb2
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