The webdriver crate which is used by geckodriver has a path
dependency set. As such it needs to be run as part of the
geckodriver tests.
MozReview-Commit-ID: AAo9oLYapWp
--HG--
extra : rebase_source : 4bc926d4ec54a836b78b39b8d46429788918e62f
Upgrading the docker image from the unsupported Ubuntu 15.10 release
to the 16.04 LTS release let us build the win32 binary successfully.
DON'T BUILD
MozReview-Commit-ID: 9Z0MPsMqyTu
--HG--
rename : testing/geckodriver/i686-trusty/Dockerfile => testing/geckodriver/i686-xenial/Dockerfile
extra : rebase_source : 5595355b978e17c201b6de5ed0acbb35ffee6344
This makes geckodriver support WebDriver web elements, web frames,
and web windows.
Marionette sends back JSON Objects such as
{<element key>: <uuid>}
where the element key is one of the unique strings this patch adds
to geckodriver::marionette.
MozReview-Commit-ID: HegkGFqxkms
--HG--
extra : rebase_source : 88d51ac29b429124e2e321c0cccda949397fd307
The acceptInsecureCerts and pageLoadStrategy capabilities in the
WebDriver capabilities table are missing default values, which
causes the table columns to be misaligned.
MozReview-Commit-ID: 57p4YzxEmUh
--HG--
extra : rebase_source : d247f0d3596de400ff970d46434a04e3fbf2c909
The WebDriver implementation status report on MDN is out of date.
MozReview-Commit-ID: BWGvi86fvsO
--HG--
extra : rebase_source : f11dae28fb2aea0abfd49b7f521f58aa50cb059e
Bug 1452024 bumped the minimum required Selenium version to 3.11,
but did apparently not update the README.
MozReview-Commit-ID: Gsn6Kjg8EOr
--HG--
extra : rebase_source : e2415af109e1362ddecfd71ddfecacb7306ce8ba
Bug 1433574 removed the extensions.showMismatchUI preference from
geckodriver and the Python client. Because these tools are used
out-of-tree against all release channels of Firefox, the preference
cannot be removed before Firefox 61 becomes the minimum supported
version.
MozReview-Commit-ID: 2iD4PffP5Yx
--HG--
extra : rebase_source : e3eb9bd431901042183792495193911269e36736
Lots of preferences aren't used anymore, or are safe to set at
startup in marionette.js. This also makes them specific to a
version of Firefox, and prevents us from keeping fallback
preferences around in geckodriver.
This patch bumps the recommended version of Firefox to 57.
MozReview-Commit-ID: Iic6iWFP3Nx
--HG--
extra : rebase_source : 0700aa502f53178f759ded232fe4a1452b07e1ee
As part of bug 1462040, geckodriver was made to use the IPv4 stack
when connecting to Marionette in Firefox. However, the helper
function for finding an atomic free port still uses localhost,
which on some systems may prefer the IPv6 stack.
To ensure that the free port is found on the correct IP stack, this
patch changes marionette::get_free_port() to use the DEFAULT_HOST
constant that is already used for establishing the connection.
MozReview-Commit-ID: HeEyvwYfHh2
--HG--
extra : rebase_source : 21c69a9499ce569ac4221d1cd2affd2b43092b1d
Bug 1452024 caused a regression in geckodriver which accidentally
added an extra colon to the "WebDriver:Forward" command.
This breaks Marionette because it is not a known command.
MozReview-Commit-ID: JKDVj9YWoZC
--HG--
extra : rebase_source : eed2789deaee49be1c248979cf40028868efc0df
Also bump webdriver's version so it can be released and updated in servo
MozReview-Commit-ID: 7jMycZ6t3mm
--HG--
extra : rebase_source : 44d0b436e303d427a8b4c06e5b97538a76fd3f8c
Marionette uses nsIServerSocket which only allows to create a IPv4
listener. On systems where IPv6 has precedence geckodriver will
automatically use the IPv6 address for `localhost` and will fail
to connect to Marionette. As such we should force geckodriver to
connect to "127.0.0.1".
MozReview-Commit-ID: Dg1n6yYIi2N
--HG--
extra : rebase_source : ed3419a80dbd3101f5d2ee9a469e3e56b189f881
geckodriver should log to which host and port it is trying
to create a connection with Marionette.
MozReview-Commit-ID: DxWSsDDMKCL
--HG--
extra : rebase_source : df870bf956d93aae8d95f70c88c184adc90bf2bf
Mercurial, unlike git, does not pick up .hgignore files in subdirectories.
This file has never been used.
MozReview-Commit-ID: 6HdQJREJkgC
--HG--
extra : rebase_source : 9f69c19aa68b34e32efee6a400653210afe32018
This patch removes the extra trace log entries from geckodriver
which weren't useful for debugging in the past.
MozReview-Commit-ID: FE94y8eVqpk
--HG--
extra : rebase_source : e7d5b31a120d268af848e7f173ee0ea5a672f4b9
The marionette.log.level value is case insensitive and this commit
points that out in the documentation associated with the preference.
MozReview-Commit-ID: KZGFE9feFRl
--HG--
extra : rebase_source : 26dad92ff74f8752785061a59df891668c9a0310
Commands which are not defined by the WebDriver spec have to
use the "Marionette" prefix. Exceptions are only allowed for
chrome specific commands which share the same request URL with
the content one.
MozReview-Commit-ID: L47inQ3e8it
--HG--
extra : rebase_source : cc7e03bc01376cc08f6545405a9a54da2a8e77da
Before we can deploy bug 1400233 which removes the JSON Object field
"ELEMENT" from Marionette, we need to make geckodriver recognise
"chromeelement-9fc5-4b51-a3c8-01716eedeb04".
Technically a chrome element is not a web element, but geckodriver
treats it as such. This is in line with previous behaviour but should at
some point be changed when WebDriver supports these types of extensions.
This patch does not drop support for the legacy web element identifier
(ELEMENT) since it would entail dropping support for Firefox 55
and later. The new element identifiers were introduced in Firefox 58.
MozReview-Commit-ID: GiBHcOcvGbh
--HG--
extra : rebase_source : aa459613024e46c88fe3754e96bbfe9cc78ddc19
The Display trait implementation for ExitStatus returns "exit code:
0", leading to a convoluted sentence such as "Browser process
stopped with exit status exit code: 0".
MozReview-Commit-ID: 2D1JsFIhF7d
--HG--
extra : rebase_source : 044d1961485073a11aefc978eff3e382c59db4cc
std::process::Child::kill() will return Err if the process has
already exited. The assumption in bug 1443853 was that calling
::kill() would consistently return the std::process::ExitStatus
was the process already dead.
This patches the regression from bug 1443853 by employing
Child::try_wait() in a loop. When the process gives some exit status,
this is return directly without relying on Child::kill() as before.
If the process has not exited and the timeout has elapsed, we kill
the process and return its return value. If the process has not
exited but the timeout duration has not elapsed, we wait 100 ms as before.
MozReview-Commit-ID: 4VENbrKtcEh
--HG--
extra : rebase_source : 7f27ed057da740306367ef2b6a87f8ac6a242541