Increasing geckodriver's Keep-Alive timeout duration to 90
seconds, from the default five seconds, will reduce the number of
HTTP connections a persistent-enabled client will have to make,
potentially boosting performance.
In more recent hyper versions the default is 90 seconds, which
means we can get rid of this line when hyper is upgraded.
This will help mitigate https://github.com/mozilla/geckodriver/issues/1304
but not fundamentally resolve it, due to a standard library bug in
Python 2.7's urllib.
MozReview-Commit-ID: 98AFDQgWfpw
--HG--
extra : rebase_source : 75ce5a143533134b60848f2351aab60778c53d78
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
geckodriver currently only supports "accept" and "dismiss".
But to be compliant with the WebDriver specification all
allowed options have to be supported.
Given that Marionette uses the hard-coded dismiss and notify
behavior for unexpected prompts, inappropriately marked as
failed tests for accept/dismiss + notify for
execute_(async_)script will pass now.
MozReview-Commit-ID: 14kRTpvJYjZ
--HG--
extra : rebase_source : 71054e6ff066b9a2c0541e223cdf25136fc4ff85
WebDriver commands which do not return a value have to send null.
But currently geckodriver returns an empty object.
MozReview-Commit-ID: EEmNlbmxu5n
--HG--
extra : rebase_source : aaa09cb5d8470b9669b8046ead62d709111f7f04
Also bump webdriver's version so it can be released and updated in servo
MozReview-Commit-ID: 7jMycZ6t3mm
--HG--
extra : rebase_source : 44d0b436e303d427a8b4c06e5b97538a76fd3f8c
This patch somewhat marginally improves error messages returned
during capabilities negotiation.
MozReview-Commit-ID: IHTRk7Rl4ZU
--HG--
extra : rebase_source : a669039092d79ec2fb3b66f7e9ef6c3ed21bfd44
This patch somewhat marginally improves error messages returned
during capabilities negotiation.
MozReview-Commit-ID: IHTRk7Rl4ZU
--HG--
extra : rebase_source : 0fdca046ad69f732d70d5a23145578697cc2fb61
With the request to shutdown the browser, a given amount of time
has to be waited to allow the process to shutdown itself. Only
if the process is still running afterward it has to be killed.
Firefox has an integrated background monitor which observes
long running threads during shutdown, and kills those after
65s. To allow Firefox to shutdown on its own, geckodriver
has to wait that time, and some additional seconds.
MozReview-Commit-ID: 4LRLQE0jZzw
--HG--
extra : rebase_source : c33c163d4d06768ea6616b97a25f986f5ea37e5d
With the request to shutdown the browser, a given amount of time
has to be waited to allow the process to shutdown itself. Only
if the process is still running afterward it has to be killed.
Firefox has an integrated background monitor which observes
long running threads during shutdown, and kills those after
120s. To allow Firefox to shutdown on its own, geckodriver
has to wait that time, and some additional seconds.
MozReview-Commit-ID: 4LRLQE0jZzw
--HG--
extra : rebase_source : 62422c609131dfe23e547967bcfc5dfb34f30172
The HTTP status for the "stale element reference" error in WebDriver
should be 404 (Not Found).
MozReview-Commit-ID: CBb7Ds8AEY3
--HG--
extra : rebase_source : 9b4309d43118730e20cb4ba17312a49cc203c58b
Made this a separate commit from that which actually removes the
in-tree vendored dependencies to make it easier to review.
MozReview-Commit-ID: 9xbkM0EfOOL
--HG--
extra : rebase_source : 6686dc07a25df1a820914eb715fb733778f092cb
The Rust backtrace from geckodriver is not useful since any error
we actually return is by-definition handled by the code, and we
can probably get more information just by looking at the error type
and string.
At the same time, it runs the risk of confusing users into thinking
there was a bug in the driver when actually it's perfectly normal
handling of invalid input.
MozReview-Commit-ID: 9S5IaioA5AA
--HG--
extra : rebase_source : 0d98188c263d51402c2330a6b730752487dcc7fc
A release of the webdriver crate is necessary for the release build
to pass on Travis, since testing/geckodriver/Cargo.toml cannot
depend on testing/webdriver as it is exported to the GitHub repository.
MozReview-Commit-ID: 1S2aAtg50t4
--HG--
extra : rebase_source : 53ef155537a44ef2bc141ea30a635e4144625118
This allows us to construct an ErrorStatus variant from a String.
This is useful if the remote end implementation uses the string
codes for transport.
The new From<String> trait for ErrorStatus is a reverse lookup of
ErrorStatus::error_code.
It currently handles two cases of Selenium errors, which are "element
not visible" and "invalid element coordinates". Both these have
been deprecated in the WebDriver standard and we need to figure
out a deprecation strategy for them.
MozReview-Commit-ID: 48MAVNQoiKy
--HG--
extra : rebase_source : 80c0932e3d42cfe19faa673d558790c83762dba1
References to mutable variables do not need mutable themselves.
This fixes a series of mutable variable warnings emitted by the
Rust compiler.
MozReview-Commit-ID: EosL5XNRRX4
--HG--
extra : rebase_source : 62aa86b2c6c87a5f39ee228dcad6b5e4162779d8
No functional changes here, but the indentation was wrong in many
places, making it very hard to read the code.
MozReview-Commit-ID: Iku7yPD30QV
--HG--
extra : rebase_source : 31aa77135ca7f89eab60335b5bb968c4d6f1294a
s/was/is/ in various error messages for harmony.
MozReview-Commit-ID: IrRw4Vl8bIK
--HG--
extra : rebase_source : 2e4a26077733fc4a182dca0feedd14291675d6ad
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
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 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