Commit Graph

235 Commits

Author SHA1 Message Date
Andreas Tolfsen
c988c68b51 Bug 1487994: webdriver: avoid unnecessary passing by value; r=whimboo
In some places we pass variables by value unnecessarily.  In these
cases it would be more memory efficient to pass a reference so that
we avoid copying.
2018-09-03 13:22:21 +01:00
Andreas Tolfsen
292ccb492a Bug 1487992: webdriver: drop redundant return statements; r=whimboo 2018-09-03 13:14:36 +01:00
Andreas Tolfsen
9bc5fc461c Bug 1487988: webdriver: make single character patterns use chars; r=whimboo
Single-character constant patterns should be made into chars as
these are faster to use and does not require heap memory allocation.
2018-09-03 13:04:13 +01:00
Andreas Tolfsen
f1a3d4b004 Bug 1487985: webdriver: stop throwing away error causes; r=whimboo
Instead of using a catch-all that ignores the error cause, we can
print the cause as part of the panic.

Eventually the error handling in this function should be fixed to
not panic at all, obviously.
2018-09-03 13:00:48 +01:00
Andreas Tolfsen
609dca1491 Bug 1487808: webdriver: remove redundant field names in struct init; r=whimboo 2018-09-01 13:44:20 +01:00
Henrik Skupin
236500c717 Bug 1486793 - [webdriver] Fix regression in "Take Element Screenshot" from conversion to Serde. r=ato
The command "Take Element Screenshot" expects the web element as
parameter, and not as part of the body.

--HG--
extra : rebase_source : 6ca78d005cae65273d0d6045ac60e80e993b55bd
2018-08-29 10:15:32 +02:00
Henrik Skupin
7bc6f073f7 Bug 1486467 - [webdriver] Rename sessionId to session_id for NewSessionResponse. r=ato
--HG--
extra : rebase_source : 542438b1f806f88167088680eb0d190d720a9327
2018-08-27 16:44:35 +02:00
Henrik Skupin
7a91a1ff80 Bug 1486467 - [webdriver] Rename pageLoad to page_load for TimeoutsResponse. r=ato
--HG--
extra : rebase_source : 5ba52f628420b37033fb8dccdc9a2f65ad66136e
2018-08-27 16:44:06 +02:00
Henrik Skupin
ff8893e19a Bug 1485580 - [geckodriver] Make parsing of float timeout values spec conforming. r=jgraham
--HG--
extra : rebase_source : 5efb1c8db234cecbd07f478e95bb9f3b8bb0b785
2018-08-23 09:59:39 +02:00
Bastien Orivel
963e21bf7f Bug 1484462 - Update webdriver to hyper 0.12. r=ato 2018-08-23 13:15:22 +01:00
Andreas Tolfsen
1efbde8664 Bug 1485414 - Make lazy_static a dev dependency. r=whimboo
This silences an unused macro_use warning at build time.
2018-08-23 11:55:12 +01:00
Andreas Tolfsen
a4bf4db586 Bug 1484941 - Change ErrorStatus::{ScriptTimeout,Timeout} HTTP codes from 408 to 500. r=whimboo
Whilst it is logically correct to use 408 for the
ErrorStatus::ScriptTimeout and ::Timeout errors, it
causes a collision with HTTP semantics implement in HTTP clients.
To support Keep-Alive we allow retries in HTTP clients and if a
client sees code 408 it thinks that the server has gone away and
retries the request.

This causes WebDriverCommand::ExecuteScript, ::Get, and ::Refresh
commands to be sent twice with some HTTP clients.

This is a backwards incompatible change to WebDriver in order to
not break HTTP/1.1 Keep-Alive.
2018-08-23 11:48:24 +01:00
Henrik Skupin
f06c122d06 Bug 1396821 - [geckodriver] Apply rustfmt on other webdriver modules. r=ato
MozReview-Commit-ID: LLLVkRvL08O

--HG--
extra : rebase_source : 7253a43473aa05fde2005f938b9fe04dd645426c
2018-08-22 10:26:46 +02:00
Henrik Skupin
121e071db6 Bug 1396821 - [geckodriver] Switch webdriver crate from rustc_serialize to serde. r=ato
The patch switches the serialization and deserialization of data
structures from the rustc_serialize crate to serde. By doing that
all the custom code for serialization and deserialization can be
removed in favor of serde's automatically derived serializers and
deserializers.

MozReview-Commit-ID: F25p325gbiC

--HG--
extra : rebase_source : 362300476b0ce670cc457320c76db3929d673b65
2018-08-22 10:26:19 +02:00
Andreea Pavel
0bcfe81a06 Backed out 6 changesets (bug 1396821) for linux tier2 build bustages on a CLOSED TREE
Backed out changeset 2fa2975f97e3 (bug 1396821)
Backed out changeset c5895db52483 (bug 1396821)
Backed out changeset 5c0ddd45f926 (bug 1396821)
Backed out changeset 7c97853a85b9 (bug 1396821)
Backed out changeset b61ce753f01e (bug 1396821)
Backed out changeset 7ef3912feb2c (bug 1396821)

--HG--
rename : third_party/rust/serde_json/LICENSE-APACHE => third_party/rust/rustc-serialize/LICENSE-APACHE
rename : third_party/rust/serde_json/LICENSE-MIT => third_party/rust/rustc-serialize/LICENSE-MIT
2018-08-21 20:20:24 +03:00
Henrik Skupin
e565b85469 Bug 1396821 - [geckodriver] Apply rustfmt on other webdriver modules. r=ato
MozReview-Commit-ID: LLLVkRvL08O

--HG--
extra : rebase_source : a8fc7b929c8005470394de5df14a0d8e67ff95a0
2018-08-17 14:56:05 +02:00
Henrik Skupin
1cf0042ddf Bug 1396821 - [geckodriver] Switch webdriver crate from rustc_serialize to serde. r=ato
Instead use serde. This is the simplest possible conversion using the
serde Value type everywhere. The intent is to use the automatically
derived deserializers in the future.

MozReview-Commit-ID: F25p325gbiC

--HG--
extra : rebase_source : 661316cf0f1b1f395b3c7166890f13477036f877
2018-06-11 17:49:22 -07:00
Henrik Skupin
9ee317f115 Bug 1469601 - [webdriver] Fix Add Cookie command to raise an "invalid argument" error if parameters are null. r=ato
--HG--
extra : rebase_source : 21ac59e93053ef109e92ae36c10f4d744bb9a95a
2018-08-14 17:25:17 +02:00
Andreas Tolfsen
015c30f932 Bug 1470659 - Add setWindowRect capability to geckodriver. r=automatedtester
It will never be possible to configure setWindowRect, and trying
to do so will cause geckodriver to return with an error.
2018-08-01 18:31:25 +01:00
Andreas Tolfsen
e5126976b6 Bug 1471201 - Increase webdriver HTTPD Keep-Alive timeout to 90s. r=automatedtester
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
2018-07-05 12:50:33 +01:00
Andreas Tolfsen
55d5e3a0c1 Bug 1408509 - Support web elements, frames, and windows in geckodriver. r=whimboo
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
2018-06-19 19:04:36 +01:00
Andreas Tolfsen
ab335461ae Bug 1441204 - Release webdriver crate 0.36.0. r=maja_zf
MozReview-Commit-ID: 1C5QHSWGZZu

--HG--
extra : rebase_source : 7defa01add7516b6e71846d1f39ac0fdcf986b87
2018-06-14 13:28:33 -07:00
Andreas Tolfsen
988a7b847b Bug 1441204 - Upgrade unicode-segmentation from 1.1.0 to 1.2.1. r=maja_zf
MozReview-Commit-ID: 1KUU2U7AVz4

--HG--
extra : rebase_source : fe6951e60f80fe09ea215b05213116087a3af3b9
2018-06-14 13:01:20 -07:00
David Burns
4c3540e6ae Bug 1468398: Allow Keep Alive connections in geckodriver r=jgraham
MozReview-Commit-ID: 9lX9qgMgDJi

--HG--
extra : rebase_source : 6dbb9eb161a612db641d4076cb994c1ccea46e9d
2018-06-12 22:31:01 +01:00
Henrik Skupin
aa6c77e3ca Bug 1468185 - [geckodriver] Add support for all unhandledPromptBehavior options. r=ato
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
2018-06-11 08:50:58 -07:00
Henrik Skupin
8b962cb10a Bug 1461463 - [geckodriver] Empty response value should be null and not {}. r=ato
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
2018-05-17 15:56:39 +02:00
Bastien Orivel
3eb765c7e3 Bug 1463251 - Part 1. Update regex in both webdriver and geckodriver. r=ato,jgraham
Also bump webdriver's version so it can be released and updated in servo

MozReview-Commit-ID: 7jMycZ6t3mm

--HG--
extra : rebase_source : 44d0b436e303d427a8b4c06e5b97538a76fd3f8c
2018-05-21 22:24:30 +02:00
Andreas Tolfsen
4dcf6c50b7 Bug 1401129 - Release webdriver 0.35.0. r=whimboo
MozReview-Commit-ID: lnoyZZbtcF

--HG--
extra : rebase_source : c43d960f793cd3d3eed922ac8ebe31d9a0564d12
2018-03-08 16:05:08 +00:00
Greg Fraley
e6f4df94b9 Bug 1396823 - Use unicode-segmentation to iterate graphemes instead of chars r=ato
MozReview-Commit-ID: 8QsOmtXDnGI

--HG--
extra : rebase_source : 0af1eb0af8d23346a1b20ac6a04964d974232850
2018-03-06 21:31:14 -05:00
Henrik Skupin
a9795130f4 Bug 1442028 - Move webdriver actions into its own module. r=ato
MozReview-Commit-ID: Bf0Ut8AGwtl

--HG--
extra : rebase_source : 4d90cb2c8e1b018a048a76805243eb01a646c326
2018-02-28 22:31:47 +01:00
Andreas Tolfsen
ff9c750728 Bug 1396819 - Improve error messages from capabilities matching. r=whimboo
This patch somewhat marginally improves error messages returned
during capabilities negotiation.

MozReview-Commit-ID: IHTRk7Rl4ZU

--HG--
extra : rebase_source : a669039092d79ec2fb3b66f7e9ef6c3ed21bfd44
2018-02-14 15:43:56 +00:00
Gurzau Raul
ff2c916927 Backed out changeset 1f94fa48c7dc (bug 1396819) for build bustage 2018-02-19 14:21:12 +02:00
Andreas Tolfsen
e963826d1c Bug 1396819 - Improve error messages from capabilities matching. r=whimboo
This patch somewhat marginally improves error messages returned
during capabilities negotiation.

MozReview-Commit-ID: IHTRk7Rl4ZU

--HG--
extra : rebase_source : 0fdca046ad69f732d70d5a23145578697cc2fb61
2018-02-14 15:43:56 +00:00
Bastien Orivel
5473571aa5 Bug 1438195 - Update log to 0.4 in webdriver and bump version. r=ato
MozReview-Commit-ID: 4lkBqe4EzEI

--HG--
extra : rebase_source : 4f8319f2cad1e33cebf3596fb4bf2a2f83534dfb
2018-02-15 13:01:10 +01:00
Henrik Skupin
7e2ab8502e Bug 1403923 - Safely shutdown Firefox from in delete_session. r=jgraham
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
2017-10-05 23:49:17 +02:00
Cosmin Sabou
92439c6859 Backed out changeset 34faef444ae3 (bug 1403923) for WD failures on Linux debug and x64 debug at /webdriver/tests/execute_async_script/user_prompts.py r=backout on a CLOSED TREE 2017-12-15 21:02:58 +02:00
Henrik Skupin
cdfdfae097 Bug 1403923 - Safely shutdown Firefox from in delete_session. r=jgraham
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
2017-10-05 23:49:17 +02:00
Matt Brubeck
d9343cf41b Bug 1422366 - Update webdriver Rust crate to cookie-0.10. r=jgraham
MozReview-Commit-ID: 3gJPSBSNTxF

--HG--
extra : rebase_source : faccf0c8acd73c478b5bf5578f99233445023384
2017-12-01 10:12:07 -08:00
Steve Armand
6c2bd362a0 Bug 1414256 - [webdriver] Fix spelling error for unknown capabilities. r=jgraham,whimboo
MozReview-Commit-ID: 5mrQLw81loK

--HG--
extra : rebase_source : 745790bf6f9abbbdca4218b9e0493cad7f1c8763
2017-11-04 19:00:48 -04:00
Andreas Tolfsen
54380b0c6a Bug 1410799 - Fix HTTP status for stale element reference error r=jgraham
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
2017-11-01 18:02:15 +00:00
Andreas Tolfsen
ea4dbaf7a9 Bug 1413292 - Remove backtrace crate dependency from geckodriver. r=jgraham
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
2017-10-31 20:31:53 +00:00
Andreas Tolfsen
a1b7e2cd46 Bug 1413292 - Stop sending geckodriver backtrace with errors. r=jgraham
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
2017-10-31 20:30:18 +00:00
Joel Maher
34110f34d0 Bug 1412904 - fill in missing bugzilla_components in testing/webdriver. r=ato 2017-10-31 12:27:48 -04:00
Andreas Tolfsen
f056551b50 Bug 1412037 - Release webdriver crate 0.32.0. r=jgraham
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
2017-10-26 18:05:29 +01:00
Andreas Tolfsen
b2ef602242 Bug 1411026 - Provide String type conversion for ErrorStatus. r=whimboo
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
2017-10-23 21:46:44 +01:00
Andreas Tolfsen
fe6ba66d6c Bug 1409438 - Make references to mutable variables immutable. r=whimboo
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
2017-10-17 17:04:11 +01:00
Andreas Tolfsen
cc5abdb455 Bug 1407000 - Lint match_browser. r=automatedtester
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
2017-10-09 19:11:31 +01:00
Andreas Tolfsen
6034b21f96 Bug 1407000 - Prefer error messages in the present. r=automatedtester
s/was/is/ in various error messages for harmony.

MozReview-Commit-ID: IrRw4Vl8bIK

--HG--
extra : rebase_source : 2e4a26077733fc4a182dca0feedd14291675d6ad
2017-10-09 19:08:46 +01:00
Andreas Tolfsen
4c2629b200 Bug 1407000 - Fix error for string WebDriver capabilities. r=automatedtester
MozReview-Commit-ID: I4Il8CoUBiz

--HG--
extra : rebase_source : 8c128eb9b5a9a4130816eed4227ff39b6566e2d2
2017-10-09 19:05:59 +01:00
Henrik Skupin
884db29fa1 Bug 1403503 - Remove obsolete socksUsername and socksPassword capabilities. r=automatedtester
MozReview-Commit-ID: bHqc96uzsm

--HG--
extra : rebase_source : 633bcc11d85addf837abca71120959b4b5f6aeb5
2017-09-28 09:28:13 +02:00