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
This prevents the geckodriver crate from being published to a
package registry like crates.io by mistake.
MozReview-Commit-ID: 7Qc9vaPhdJh
--HG--
extra : rebase_source : ec1f470a69c14c240b2cb522eb4475b22ed4a9da
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
Cargo 0.23.0-beta, included with Rust 1.22.0-beta.2, wants to
move the top-level package description out of the [root] section
of Cargo.lock and into a parallel [[package]] section.
Accept this update by temporarily running the build without
passing --frozen and committing the result.
This is accepted by the cargo versions included in the current
and previous stable rust releases, so it will work with all
supported toolchains.
MozReview-Commit-ID: 1hMykhTknHi
--HG--
extra : rebase_source : 153d2016cd5e637584ea1d755198fbd1a5e7067e
When a stacktrace is provided from Marionette, use the
WebDriverError::new_with_stack constructor to have it propagated
as the WebDriver error's stacktrace rather than use the Rust backtrace.
This patch also removes MarionetteSession::error_from_string in
favour of the new From<String> trait added to ErrorStatus.
It also implements an Into<WebDriverError> trait for MarionetteError
to ease the conversion.
MozReview-Commit-ID: 1z2IGUW5FS2
--HG--
extra : rebase_source : e6a54e275937893972102756b389d38f010e8e7f
For errors originating from Marionette we talk about "error codes",
not about "error statuses". This patch fixes the JSON serialisation
method Marionette::to_json which incorrectly serialised the error
code as "status"; it should be "error".
This also removes the MarionetteError::new constructor as we have
no need to allow explicit construction of MarionetteError's.
MozReview-Commit-ID: 7gjz0ebkMIU
--HG--
extra : rebase_source : 6ac6847840a12d1f2eef2e3364496fa3c2288347
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
The Java client provides two setLogLevel methods in the
FirefoxOptions class. It is recommended to use the one that accepts
FirefoxDriverLogLevel, as the other one is deprecated.
DONTBUILD
Thanks-to: Alexei Barantsev <barancev@gmail.com>
MozReview-Commit-ID: Fc6p7Gxwn5X
--HG--
extra : rebase_source : 97380c842929328c2785015c2910a3a19b7533d9
It is better in Ruby to explicitly set the client logger to a certain
level, than relying on the DEBUG output variable or the -d flag,
even though they are all equivalent.
DONTBUILD
Thanks-to: Lucas Tierney <lucast1533@gmail.com>
Thanks-to: p0deje <p0deje@gmail.com>
MozReview-Commit-ID: Eyt9zy0ucZS
--HG--
extra : rebase_source : 0031a1acf8cb8b8b742d03e86d332d9e2d071bb2
The geckodriver contribution guide is outdated and talks about
contributing to the GitHub repository. We have since moved
geckodriver to mozilla-central and the documentation should reflect this.
This patch additionally expands the guide to talk about building
and running tests, communication channels, as well as some spare
documentation on submitting patches.
DONTBUILD
MozReview-Commit-ID: 8ZMrDkAdB6U
--HG--
extra : rebase_source : 78608e518187625dd022d6dacdd68ab17b3c8d8c
The issue template was changed on GitHub directly. This syncs it back.
DONTBUILD
MozReview-Commit-ID: 56xOX0LfHXp
--HG--
extra : rebase_source : d09e14275bf8bddaa0e47ee6c62dab8cbad07f59
We missed adding it for the implementation on bug 1387094.
DONTBUILD
MozReview-Commit-ID: E717NEO7o2U
--HG--
extra : rebase_source : facb28d006e514bff6796f8c0e085c73f313d0ce
Search suggestions create unneccessary network requests and the suggestions
opt-in notification interferes with tests that don't expect it to be there.
So, this patch updates the default settings in Marionette to disable both.
MozReview-Commit-ID: 8X8SYPq19tj
--HG--
extra : rebase_source : cd0fe8f3437340b1266d161e1cad46bcbcd1a6f6
This is a liberal port of the old geckodriver release instructions
that are on the GitHub wiki:
https://github.com/mozilla/geckodriver/wiki/Releasing
Because the project's canonical home has moved to mozilla-central,
it is better to keep all documentation in one place. Documentation
close to the source code is the best.
I have improved the release instructions in a number of ways, in
particular by describing how to make a release to GitHub/Travis from
mozilla-central.
DONTBUILD
MozReview-Commit-ID: 6f87DLDM59E
--HG--
extra : rebase_source : c144ac8ee2486a38d7eb26c91276e841be50fc81
Shield experiments interfer with core features of Firefox which can
cause tests run via Marionette or geckodriver to fail. Resetting the
API URL will make sure that no experiments can be downloaded.
MozReview-Commit-ID: HnE49jfnen7
--HG--
extra : rebase_source : 2fa6cf86ddce798eba88a41d227768f149cccc70
Shield experiments interfer with core features of Firefox which can
cause tests run via Marionette or geckodriver to fail. Resetting the
API URL will make sure that no experiments can be downloaded.
MozReview-Commit-ID: HnE49jfnen7
--HG--
extra : rebase_source : 9cec29085032318e9e8467d6d754afe0890ae645
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 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
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
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
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
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