Currently the mochitest and reftest runners are forcing a timeout of 60s
(or 900s for valgrind or debug builds) when calling `start_session` of
Marionette. While this method still offers a timeout parameter, the
timeout should be set via the `startup_timeout` argument for Marionette.
Reason is that Marionette doesn't control the browser instance and
is getting called right after the application gets launched. As such
slow running builds can cause timeouts once it takes longer than 60s
for the Marionette server to get started.
By using `startup_timeout` the timeout will even be configurable via
the command line and mozharness config files.
MozReview-Commit-ID: EV7GklBcJjU
--HG--
extra : rebase_source : 9d3c623c49deb92d68c40ba4410c812c864e06bd
When the binary gets launched we do not immediately kill the process if the
connection to Marionette server cannot be established within the given amount
of seconds. Instead "_handle_socket_failure" is getting called because
the utility method `raise_for_port` inappropriately uses the `@do_process_check`
decorator.
By removing the decorator the initial connection attempt can be handled
differently. As such the process if handled by Marionette will be immediately
killed. Currently we are waiting for the process to quit itself within 120s,
which will actually never happen due to no active session.
Further `start_session` defaults to a timeout of 60s which itself is problematic
for test harnesses using Marionette but controlling the binary themselves. In
those cases timeouts can happen often for slow starting browser processes like
debug builds. Instead this timeout should default to the `startup_timeout` value.
MozReview-Commit-ID: BZvX5KT45mK
--HG--
extra : rebase_source : 875807b75f0575a10dc9de3588237002fa6a5821
By logging the used browser arguments from geckodriver only the
-marionette argument ends up in the log. Instead mozrunner should
be used which knows about any of them.
MozReview-Commit-ID: J9px0pWSwQm
--HG--
extra : rebase_source : 36730f7c2ecffa7a28dda3d16404f523bd075d35
This just adds two basic tests, one for a passing test and another for a
failing one. In mochitest, we use privileged APIs to also tests crashes,
assertions, asan and leaks. But these APIs aren't available to reftests
so I'm not sure how we can test these things.
I figure it's not worth holding the framework up on this though, I'll file
a follow-up to figure out something to do for that.
MozReview-Commit-ID: 59TSbsugT5T
--HG--
extra : rebase_source : 72ecd817017c8b7d55eab879db4f6ad5fecc54c0
This includes code for downloading a Firefox binary, downloading + setting up a tests.zip and
running output through mozharness' output parsers. This is all stuff that will also be required
for the reftest selftests.
I couldn't think of a better location to put this stuff, suggestions welcome.
MozReview-Commit-ID: 59TSbsugT5T
--HG--
extra : rebase_source : a328f6bc90e73fe23f9054933cd01a30065419f6
This change rides the train along with the change to build beta from
l10n-central.
Not changing 52 esr config, as that continues to build from the
repository it's currently building from.
ESR will be picked up when the next ESR is riding the trains from central.
MozReview-Commit-ID: F9Wo2mcZ3PA
--HG--
extra : rebase_source : dbf6c39cc5ab51bf4970caa4d62a80060b6b8c7c
Take into account that a weak referenced element might have been destroyed
in the element staleness check.
An error is thrown when the reference object has been destroyed when
getting a weakrefs' pointer. We catch this, but element.isStale does
not take into account that the el argument in this case can be null,
or in this revision of the patch, undefined.
MozReview-Commit-ID: 7sr4YGhAotS
--HG--
extra : rebase_source : 995eeef4ec1b19bf100cb95c4dd343e947b1cf52
This test causes both a failure and an error and we need to investigate
how to reuse the wptrunner session configuration when implicitly starting
a session.
MozReview-Commit-ID: 5k7nfevamZY
--HG--
extra : rebase_source : 6c00bf4505bd7da0b97dccd3eda61adc9efa874e
The WindowProxy screenX/screenY/outerWidth/outerHeight fields are
platform-independent longs, meaning the bitness of the system is not
taken into account. This is defined in WebIDL as "a signed integer type
that has values in the range [−2147483648, 2147483647]". This can be
represented with an i32 internally.
Additionally, the WebDriver specification says that we should accept
JSON Numbers as input. This means the input value can be either a float
or an integer. rustc_serialize handles this very badly and we first
need to extract the input as f64 because this is the most liberal type
(i.e. an integer can be coerced to a float without problem).
We then we cast the number to an i64 which trims off any decimals without
worrying that the number wraps. We then run bounds checks of an i32
and error if the number will not fit within the set range.
This patch expects the output from Marionette to be conforming.
MozReview-Commit-ID: CVdUZWh2t8X
--HG--
extra : rebase_source : 6780985703d5d5291eae508f9eb2fdec16c261cc
When maximizing the window we must restore it from iconified state or
exit fullscreen first. Likewise for minimizing the window, we must
exit fullscreen. For fullscreening the window we need to also restore
the window.
MozReview-Commit-ID: AOQX2cV2C75
--HG--
extra : rebase_source : 53f310cc261a9a411bc46a04dd50a160a930b5af
If the browser process is not running it doesn't make sense to try to
connect to it for another 60s. Instead error out immediately.
MozReview-Commit-ID: 64DTZfEfzQj
--HG--
extra : rebase_source : 9951b1a64cbd8b387c2bc5e1152de0a975dbbe77
This change, though unstubstantial, will make the Markdown documents
under testing/geckodriver more readable in text editors.
DONTBUILD
MozReview-Commit-ID: 21yQUExNJhU
--HG--
extra : rebase_source : cb51d1a0ce93c561c79fabb941b56192ec711480
This patch gently removes support for __exposedProps__ by changing
ExposedPropertiesOnly::check() to always return false, while still
failing silently in deny for some kinds of access.
The tests that I changed all involve testing the behavior with
__exposedProps__. I adjusted them to expect it to fail, or to adjust
the error message they get when they fail. That seemed better than
deleting them entirely.
Note that test_bug1065185.html had a bug, so that it never executed
the first case. I fixed that, and then fixed up the test to work when
__exposedProps__ is not supported.
This also removes various bits of the test framework that use
__exposedProps__, but don't actually need to.
MozReview-Commit-ID: 8fvkAmITmXY
--HG--
extra : rebase_source : ef7e2c55adc12511f17f3865ebb46c343875f0b3
The marionette.defaultPrefs.port preference was changed to
marionette.port, but because we currently do not run tests in CI we
missed updating the test.
MozReview-Commit-ID: LKstRYmJcMO
--HG--
extra : rebase_source : 1633b5b82c3c8725ff66423119d7c476fa942b01
This tests both that the settings have the desired effect and that switching
between sharing enabled and sharing disabled without a startup cache flush
does not cause any issues.
Tests for user pref changes are currently non-fatal, since they're known not
to work reliably.
MozReview-Commit-ID: 1ZFwyiNf3da
--HG--
extra : rebase_source : c38bd92d2137c90f8c4d202b7009612b45ff4be9
Notable changes
* ensure we run dump-symbols and upload actions on all platforms
* On android:
* add configuration and support for aarch64
* set min_sdk levels to match Fennec builds
* use a full copy of the r11c ndk (our truncated one was missing toolchains we needed) and set NDKROOT when calling build
* ensure the tooltool provided sdk is on the PATH
* on linux copy tooltool.py into the mock environment, so we can get dump_syms from tt
* remove macosx32 config as we've deprecated that in Firefox builds
* update dump_syms to recent m-c, notably for aarch64 support on linux
* on linux rev e365137fa61bfd729617ba1ebf9f1ed79facd1f2 (via try 0f72a5c28be1cdc2f3bdfaafdf3826254f6ba077)
* on mac rev e365137fa61bfd729617ba1ebf9f1ed79facd1f2 (via compile on a bld-lin-r5)
* on windows rev a4a448ba7f187069fce916ee234a06cbb0d06f80 (via try dc8b121e3c08e8022d62c0fa1951dd3dc4d6f7cc)
* switch to Visual Studio 2015 Update 3 on win32/win64 to match Firefox
* many updates to environement variables
* painful to get win64 right to run win32 dump_syms.exe, but that's why the x86 redist is on teh PATH
* unwind the changes to get_output_from_command() in v1.6 patch to avoid affecting other builds, and use query_env() which has this support already
* add a scp_upload_directory since we don't have rsync on windows, use that to talk to the ffxbld upload host (not a long term solution but OK for now)
Applies on top of https://reviewboard.mozilla.org/r/64022/diff/4#index_header
MozReview-Commit-ID: B3NiWFvr2oR
Currently defaults for startup_timeout and socket_timeout are defined
at two different places (Marionette driver and harness). As of now it's
even the case that startup_timeout has different values. While Marionette
driver uses 120s, the harness only uses 60s.
As result all jobs which are based on the Marionette harness fail if
Firefox starts-up slowly like for debug builds.
MozReview-Commit-ID: Dl4sBG1H7NA
--HG--
extra : rebase_source : 959facabebc371beee23b4de345ddd2495913bb7
Currently defaults for startup_timeout and socket_timeout are defined
at two different places (Marionette driver and harness). As of now it's
even the case that startup_timeout has different values. While Marionette
driver uses 120s, the harness only uses 60s.
As result all jobs which are based on the Marionette harness fail if
Firefox starts-up slowly like for debug builds.
MozReview-Commit-ID: Dl4sBG1H7NA
--HG--
extra : rebase_source : 688338b1782deaf08eb01c7c5d4ca01ba03328f5
To allow resetting the default no proxy exclusion entries in
Firefox tests have to pass an empty noProxy list. This should
also be correctly applied.
MozReview-Commit-ID: ABmYdPvoSvx
--HG--
extra : rebase_source : 313fe0a918a4a9bfe5204e5777568ee5f89744d3
Currently the listener for addon installs misses a check for the addon id,
to only resolve the promise when it has been called for the expected addon.
This can cause race-conditions if other addons are getting installed at the
same time.
The same applies to uninstall which doesn't wait at all until the operation
has been completed.
MozReview-Commit-ID: 5GsomMoAVZ1
--HG--
extra : rebase_source : a1b43adb2239b0c28cbee1d843f4b6c666a07f0a
This method works by running a long-running script and catching the exception when
it is interrupted. But the exception changed so we must make a corresponding change here.
MozReview-Commit-ID: EdZZAOVZ0Sw
In general these exceptions are the result of something unexpected in
the environment, but shouldn't themseslves cause the test to error.
MozReview-Commit-ID: 5XjJoT4UwnC
To allow the selection of the new webdriver spec conforming
"clickElement" method over the old legacy Selenium one, the
"moz:webdriverClick" capability can be used. Setting it's value
to true will enable the conforming click.
MozReview-Commit-ID: HMvFFEJDvpG
--HG--
extra : rebase_source : 34bb71f7d64d08968cd6b52760cf4d36a61cb29d
To allow geckodriver to temporarily opt-in for using the webdriver
conforming click, a new custom capability has to be created for
Marionette. If not specified the legacy clickElement method will
be used instead.
MozReview-Commit-ID: LuyTjLJXMGL
--HG--
extra : rebase_source : 8e133fb2d9767ea580468013fedff5233fd8eb93
There are DOM attributes to query a window's minimized and fullscreen
states, but there is no reliable way to tell if the window is maximized.
To workaround this, we set the window's size before every test to ensure
it transitioned to the normal window state.
MozReview-Commit-ID: DAT0E4rhmjY
--HG--
extra : rebase_source : 0e9e77ad340c39b656f523085613f43f1d6bd94a
The window state concept was removed from WebDriver level 1.
MozReview-Commit-ID: 6cogstpDc0a
--HG--
extra : rebase_source : 539df9fed0761b8e9609f60c3f9b77b946829147
Some of the HTTP status codes have changed in the WebDriver specification,
as shown in:
d678562e3d
MozReview-Commit-ID: 4DLkYDXckew
--HG--
extra : rebase_source : 37c595265ead9591a6618ca44000bfb0f401da75
Since we make font-variation-settings animatable, should add the tests into web
platform test.
MozReview-Commit-ID: DT78XARGPVV
--HG--
extra : rebase_source : 6420b28a9b244fc7dc622e2d9e076531a3564269
This matches to the spec and makes po-callback-mutate.any.js test pass.
From the spec [1]
1. Let entries be a copy of po’s observer buffer.
2. Empty po’s observer buffer.
3. If entries is non-empty, call po’s callback with entries as first
argument and po as the second argument and callback this value. If this
throws an exception, report the exception.
[1] https://w3c.github.io/performance-timeline/#queue-a-performanceentry
MozReview-Commit-ID: AEdfvGpauzy
--HG--
extra : rebase_source : 20b9fc8426fd48d10e8e55662afe1c881fd92343
… in the C++ style system, to align with Stylo and the CSSOM spec.
MozReview-Commit-ID: HaDUeNjumnY
--HG--
extra : rebase_source : 3a4d2856bb6b3702d0bc7ec9b7a8e472758ab9f0
Since both these Rust programs are hosted in mozilla-central,
they are governed by the top-level LICENSE file. See also
toolkit/content/license.html.
MozReview-Commit-ID: 4C0fEAeJZ6h
--HG--
extra : rebase_source : f8beebd578cd816d974cc9416c6bdb1bdfa37b12
Documentation is the hallmark of a good software library and this isn't
great, but it is a step in the right direction.
MozReview-Commit-ID: IHDwp2pjXom
--HG--
extra : rebase_source : 9f5d488705cb97510ce051f1530002fffd302aaf
* Add Tag Name as a valid location strategy.
While creating WDSpec for Find Element and similar commands it showed
that we do not support Tag Name as a valid selector. Tests can be found
at https://reviewboard.mozilla.org/r/172110/
Source-Repo: https://github.com/mozilla/webdriver-rust
Source-Revision: 5cd49eb129f4ae1ae7e047f274cfa31092353d65
committer: jgraham <james@hoppipolla.co.uk>
--HG--
extra : subtree_source : http%3A//tristan.corp.lon2.mozilla.com%3A8000
extra : subtree_revision : a2245a52d6ad17184dc8b105cd2082899707bdda
To add a socks proxy the socks version is a required capability.
This patch adds the handling of the capability.
Source-Repo: https://github.com/mozilla/webdriver-rust
Source-Revision: 94cdfcbb8e92bc070f144ad13bc1f074f0761eb5
committer: David Burns <david.burns@theautomatedtester.co.uk>
--HG--
extra : subtree_source : http%3A//tristan.corp.lon2.mozilla.com%3A8000
extra : subtree_revision : d555f9bcb03b61434b83973ee5736ca771926183
As given by the spec the proxy port is no longer a separate capability,
but an optional part of ftpProxy, httpProxy, sslProxy, and socksProxy.
Source-Repo: https://github.com/mozilla/webdriver-rust
Source-Revision: f42568128d5a4218cc9f71d727ca3550c99c012e
committer: David Burns <david.burns@theautomatedtester.co.uk>
--HG--
extra : subtree_source : http%3A//tristan.corp.lon2.mozilla.com%3A8000
extra : subtree_revision : 11bda39133f9e0d2e67987b693fd44e0c249c23e