diff options
author | Andreas Tolfsen <ato@sny.no> | 2018-02-14 17:00:21 +0300 |
---|---|---|
committer | Andreas Tolfsen <ato@sny.no> | 2018-02-14 17:00:21 +0300 |
commit | 09dcbe460f150290383b48c7a618fd30cfbdb348 (patch) | |
tree | 66139cfc10f84db887b7e4bd7ddec42a0c2ec590 | |
parent | 04822d71eea8634346db7e75f08e8f8120fb87e9 (diff) |
sync with central 90fab670c4e23
-rw-r--r-- | CONTRIBUTING.md | 39 | ||||
-rw-r--r-- | ISSUE_TEMPLATE.md | 18 | ||||
-rw-r--r-- | README.md | 44 |
3 files changed, 63 insertions, 38 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7e3fe0..cdc13e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ parts it can be useful to know about: to communicate with, instrument, and control Gecko. It is built in to Firefox and written in [XPCOM] flavoured JavaScript. - * [_libwebdriver_] is a Rust crate providing interfaces, traits + * [_webdriver_] is a Rust crate providing interfaces, traits and types, errors, type- and bounds checks, and JSON marshaling for correctly parsing and emitting the [WebDriver protocol]. @@ -24,7 +24,7 @@ for contributing high-quality and actionable bugs and code. [_geckodriver_]: ./README.md [_Marionette_]: ../marionette/README.md -[_libwebdriver_]: ../webdriver/README.md +[_webdriver_]: ../webdriver/README.md [WebDriver protocol]: https://w3c.github.io/webdriver/webdriver-spec.html#protocol [XPCOM]: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide [Community Participation Guidelines]: https://www.mozilla.org/en-US/about/governance/policies/participation/ @@ -67,10 +67,16 @@ to report bugs that affect outdated and unsupported Firefoxen. Please always try to verify the issue in the latest Firefox Nightly before you file your bug. +Once we are satisfied the issue raised is of sufficiently actionable +character, we will continue with triaging it and file a bug where it +is appropriate. Bugs specific to geckodriver will be filed in the +[`Testing :: geckodriver`] component in Bugzilla. + [mailing list]: #communication [trace-level log]: doc/TraceLogs.md [GitHub issue tracker]: https://github.com/mozilla/geckodriver/issues [README]: ./README.md +[`Testing :: geckodriver`]: https://bugzilla.mozilla.org/buglist.cgi?component=geckodriver Writing code @@ -83,8 +89,8 @@ where to start. Please don’t hesitate to [ask questions]! The canonical source code repository of geckodriver is now [mozilla-central]. We continue to use the [GitHub issue tracker] as a triage ground before actual, actionable bugs and tasks are filed -in [Bugzilla]. We also have a curated set of [good first bugs] -you may consider attempting first. +in the [`Testing :: geckodriver`] component on Bugzilla. We also +have a curated set of [good first bugs] you may consider attempting first. The purpose of this guide _is not_ to make sure you have a basic development environment set up. For that there is plentiful @@ -95,7 +101,6 @@ Remember to [reach out to us] at any point if you have questions. [ask questions]: #communication [reach out to us]: #communication [mozilla-central]: https://searchfox.org/mozilla-central/source/testing/geckodriver/ -[Bugzilla]: https://bugzilla.mozilla.org/buglist.cgi?cmdtype=runnamed&namedcmd=geckodriver&list_id=13825733 [good first bugs]: https://www.joshmatthews.net/bugsahoy/?automation=1&rust=1 [Developer Guide]: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide @@ -121,8 +126,7 @@ When you have, you are ready to start off your first build: % ./mach build testing/geckodriver -The geckodriver executable will appear in `${objdir}/dist/bin/geckodriver` -alongside firefox-bin. To run it you can use mach: +To run the executable from the objdir: % ./mach geckodriver -- --version 0:00.27 /home/ato/src/gecko/obj-x86_64-pc-linux-gnu/dist/bin/geckodriver --version --binary /home/ato/src/gecko/obj-x86_64-pc-linux-gnu/dist/bin/firefox @@ -149,18 +153,17 @@ a set of conformance tests with other browser vendors through the compatibility between _different_ WebDriver implementations for different browsers. -In addition to the WPT tests, geckodriver and libwebdriver has -unit tests. At the moment there is no way to run Rust unit tests -through mach, although this is being worked on. For the moment -you need to kick off a separate build using [cargo]: +In addition to the WPT tests, geckodriver and webdriver have unit tests. +You can use a mach command to run them: + + % ./mach test testing/geckodriver - % cd testing/geckodriver - Compiling geckodriver v0.19.0 (file:///home/ato/src/gecko/testing/geckodriver) - … - test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out +The webdriver crate tests are unfortunately not yet runnable through mach. +Work to make this possible is tracked in [[https://bugzil.la/1424369]]. +For the moment you must run them manually through `cargo`: -Because the unit tests _are not_ currently run in the [Firefox CI], -hopefully you will find that they all pass. (-: + % cd testing/webdriver + % cargo test To run the more extensive WPT tests you can use mach, but first make sure you have a build of Firefox: @@ -224,4 +227,4 @@ channel on irc.mozilla.org. Don’t ask if you can ask a question, just ask, and please wait for an answer as we might not be in your timezone. [subscribe]: https://lists.mozilla.org/listinfo/tools-marionette -[archive]: http://groups.google.com/group/mozilla.tools.marionette +[archive]: https://groups.google.com/group/mozilla.tools.marionette diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index a97a84d..1d93c02 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,33 +1,29 @@ ## System + * Version: <!-- geckodriver version --> * Platform: <!-- e.g. Linux/macOS/Windows + version --> * Firefox: <!-- from the about dialogue --> -* Selenium: <!-- binding + version --> +* Selenium: <!-- client + version --> ## Testcase <!-- -Provide a minimal HTML document -that can be used to reproduce the issue. -The document should only contain the bare necessities -required to observe the problem. +Please provide a minimal HTML document which permits the problem +to be reproduced. --> ## Stacktrace <!-- -Error and stacktrace produced by client binding. +Error and stacktrace produced by client. --> ## Trace-level log <!-- -See https://github.com/mozilla/geckodriver#firefox-capabilities -for making geckodriver produce a trace-level log. - -The short version is to either pass the -vv flag -or {"moz:firefoxOptions": {"log": {"level": "trace"}}} as a capability. +See https://searchfox.org/mozilla-central/source/testing/geckodriver/doc/TraceLogs.md +for how to produce a trace-level log. --> @@ -21,7 +21,7 @@ the [Testing :: GeckoDriver] component. [WebDriver protocol]: http://w3c.github.io/webdriver/webdriver-spec.html#protocol [Firefox remote protocol]: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette -[change log]: https://github.com/mozilla/geckodriver/blob/master/CHANGES.md +[change log]: https://searchfox.org/mozilla-central/source/testing/geckodriver/CHANGES.md [Releases]: https://github.com/mozilla/geckodriver/releases [supported platforms]: #supported-firefoxen [mozilla-central]: https://hg.mozilla.org/mozilla-central/ @@ -90,6 +90,7 @@ geckodriver supports a number of [capabilities]: <td>Boolean initially set to false, indicating the session will not implicitly trust untrusted or self-signed TLS certificates on navigation. + <td> </tr> <tr> @@ -104,6 +105,7 @@ geckodriver supports a number of [capabilities]: waiting for the <code>complete</code> ready state; or "<code>none</code>", which will return immediately after starting navigation. + <td> </tr> <tr> @@ -199,8 +201,7 @@ geckodriver supports a number of [capabilities]: Firefox capabilities ==================== -geckodriver also supports capabilities with the `moz:` prefix, which can -be used to define Firefox-specific capabilities. +geckodriver has a few capabilities that are specific to Firefox. moz:firefoxOptions ------------------ @@ -280,6 +281,23 @@ and run. It may contain any of the following fields: </tr> </table> +moz:useNonSpecCompliantPointerOrigin +------------------------------------ + +A boolean value to indicate how the pointer origin for an action command +will be calculated. + +With Firefox 59 the calculation will be based on the requirements by the +[WebDriver] specification. This means that the pointer origin is no longer +computed based on the top and left position of the referenced element, but +on the in-view center point. + +To temporarily disable the WebDriver conformant behavior use `false` as value +for this capability. + +Please note that this capability exists only temporarily, and that it will be +removed once all Selenium bindings can handle the new behavior. + moz:webdriverClick ------------------ @@ -552,6 +570,13 @@ A helpful trick is that it is possible to bind to 0 to get the system to atomically assign a free port. +#### <code>--jsdebugger</code> + +Attach [browser toolbox] debugger when Firefox starts. This is +useful for debugging [Marionette] internals. + +[browser toolbox]: https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox + #### <code>-v<var>[v]</var></code> Increases the logging verbosity by to debug level when passing a single @@ -575,15 +600,16 @@ ensure you put this in your [mozconfig]: ac_add_options --enable-geckodriver -The _geckodriver_ binary will appear in `${objdir}/dist/bin/geckodriver` -alongside _firefox-bin_. +You build geckodriver with the `./mach build testing/geckodriver` +command, run tests with `./mach test testing/geckodriver`, and run +the built executable with `./mach geckodriver -- --other --flags`. [Rust]: https://www.rust-lang.org/ [Mozilla]: https://www.mozilla.org/en-US/ -[webdriver crate]: https://github.com/mozilla/webdriver-rust -[commands]: https://docs.rs/webdriver/0.25.0/webdriver/command/index.html -[responses]: https://docs.rs/webdriver/0.25.0/webdriver/response/index.html -[errors]: https://docs.rs/webdriver/0.25.0/webdriver/error/enum.ErrorStatus.html +[webdriver crate]: https://crates.io/crates/webdriver +[commands]: https://docs.rs/webdriver/newest/webdriver/command/index.html +[responses]: https://docs.rs/webdriver/newest/webdriver/response/index.html +[errors]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html [Marionette protocol]: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/Protocol [WebDriver]: https://w3c.github.io/webdriver/webdriver-spec.html [FirefoxDriver]: https://github.com/SeleniumHQ/selenium/wiki/FirefoxDriver |