Bug 1441336 - Use addon permissions for PerformanceTiming properties r=bz,kmag
[gecko.git] / testing / geckodriver / CHANGES.md
blobdd70041a20cc2f170b75e5589d63a9e16d7c88c7
1 Change log
2 ==========
4 All notable changes to this program is documented in this file.
7 Unreleased
8 ----------
10 ### Added
12 - Support for the new chrome element identifier in Marionette.
15 0.20.1 (2018-04-06)
16 -------------------
18 ### Fixed
20 - Avoid attempting to kill Firefox process that has stopped.
22   With the change to allow Firefox enough time to shut down in
23   0.20.0, geckodriver started unconditionally killing the process
24   to reap its exit status.  This caused geckodriver to inaccurately
25   report a successful Firefox shutdown as a failure.
27   The regression should not have caused any functional problems, but
28   the termination cause and the exit status are now reported correctly.
31 0.20.0 (2018-03-08)
32 -------------------
34 ### Added
36 - New `--jsdebugger` flag to open the [Browser Toolbox] when Firefox
37   launches.  This is useful for debugging Marionette internals.
39 - Introduced the temporary, boolean capability
40   `moz:useNonSpecCompliantPointerOrigin` to disable the WebDriver
41   conforming behavior of calculating the Pointer Origin.
43 ### Changed
45 - HTTP status code for the [`StaleElementReference`] error changed
46   from 400 (Bad Request) to 404 (Not Found).
48 - Backtraces from geckodriver no longer substitute for missing
49   Marionette stacktraces.
51 - [webdriver crate] upgraded to 0.35.0.
53 ### Fixed
55 - The Firefox process is now given ample time to shut down, allowing
56   enough time for the Firefox shutdown hang monitor to kick in.
58   Firefox has an integrated background monitor that observes
59   long-running threads during shutdown.  These threads will be
60   killed after 63 seconds in the event of a hang.  To allow Firefox
61   to shut down these threads on its own, geckodriver has to wait
62   that time and some additional seconds.
64 - Grapheme clusters are now accepted as input for keyboard input
65   to actions.
67   Input to the `value` field of the `keyDown` and `keyUp` action
68   primitives used to only accept single characters, which means
69   geckodriver would error when a valid grapheme cluster was sent in,
70   for example with the tamil nadu character U+0BA8 U+0BBF.
72   Thanks to Greg Fraley for fixing this bug.
74 - Improved error messages for malformed capability values.
77 0.19.1 (2017-10-30)
78 -------------------
80 ### Changed
82 - Search suggestions in the location bar turned off as not to
83   trigger network connections
85 - Block addons incompatible with E10s
87 ### Fixed
89 - Marionette stacktraces are now correctly propagated
91 - Some error messages have been clarified
93 ### Removed
95 - Removed obsolete `socksUsername` and `socksPassword` proxy
96   configuration keys because neither were picked up or recognised
99 0.19.0 (2017-09-16)
100 -------------------
102 Note that with geckodriver 0.19.0 the following versions are recommended:
103 - Firefox 55.0 (and greater)
104 - Selenium 3.5 (and greater)
106 ### Added
108 - Added endpoint:
109   - POST `/session/{session id}/window/minimize` for the [Minimize Window]
110     command
112 - Added preference `extensions.shield-recipe-client.api_url` to disable
113   shield studies which could unexpectedly change the behavior of Firefox
115 - Introduced the temporary, boolean capability `moz:webdriverClick` to
116   enable the WebDriver conforming behavior of the [Element Click] command
118 - Added crashreporter environment variables to better control the browser
119   in case of crashes
121 - Added preference `dom.file.createInChild` set to true to allow file
122   object creation in content processes
124 ### Changed
126 - Log all used application arguments and not only `-marionette`
128 - Early abort connection attempts to Marionette if the Firefox process
129   closed unexpectetly
131 - Removed deprecated `socksProxyVersion` in favor of `socksVersion`
133 - Removed `ftpProxyPort`, `httpProxyPort`, `sslProxyPort`, and
134   `socksProxyPort` because _ports_ have to be set for `ftpProxy`,
135   `httpProxy`, `sslProxy`, and `socksProxy` using ":<PORT>"
137 - The `proxyType` `noproxy` has been replaced with `direct` in accordance
138   with recent WebDriver specification changes
140 - The [`WindowRectParameters`] have been updated to return signed 32-bit
141   integers in accordance with the CSS and WebDriver specifications, and
142   to be more liberal with the input types
144 - Mapped the [`FullscreenWindow`] to the correct Marionette command
146 - To make sure no browser process is left behind when the [`NewSession`]
147   fails, the process is closed immediately now
149 - `/moz/addon/install` command accepts an `addon` parameter, in lieu of
150   `path`, containing an addon as a Base64 string (fixed by [Jason Juang])
152 - [webdriver crate] upgraded to version 0.31.0
154 - [mozrunner crate] upgraded to version 0.5.0
156 ### Removed
158 - Removed the following obsolete preferences for Firefox:
159   - `browser.safebrowsing.enabled`
160   - `browser.safebrowsing.forbiddenURIs.enabled`
161   - `marionette.defaultPrefs.port`
162   - `marionette.logging`
165 0.18.0 (2017-07-10)
166 -------------------
168 ### Changed
170 - [`RectResponse`] permits returning floats for `width` and `height`
171   fields
173 - New type [`CookieResponse`] for the [`GetNamedCookie`] command returns
174   a single cookie, as opposed to an array of a single cookie
176 - To pick up a prepared profile from the filesystem, it is now possible
177   to pass `["-profile", "/path/to/profile"]` in the `args` array on
178   `moz:firefoxOptions`
180 - geckodriver now recommends Firefox 53 and greater
182 - Version information (`--version`) contains the hash from from the
183   commit used to build geckodriver
185 - geckodriver version logged on startup
187 - [webdriver crate] upgraded to version 0.27.0
189 - [mozrunner crate] upgraded to version 0.4.1
191 ### Fixed
193 - The [`SetTimeouts`] command maps to the Marionette `setTimeouts`
194   command, which makes geckodriver compatible with Firefox 56 and greater
196 - Linux x86 (i686-unknown-linux-musl) builds are fixed
199 0.17.0 (2017-06-09)
200 -------------------
202 ### Added
204 - Added endpoints:
205   - POST `/session/{session id}/window/fullscreen` to invoke the window
206     manager-specific `full screen` operation
207   - POST `/session/{session id}/moz/addon/install` to install an extension
208     (Gecko only)
209   - POST `/session/{session id}/moz/addon/uninstall` to uninstall an
210     extension (Gecko only)
212 ### Changed
214 - Increasing the length of the `network.http.phishy-userpass-length`
215   preference will cause Firefox to not prompt when navigating to a
216   website with a username or password in the URL
218 - Library dependencies upgraded to mozrunner 0.4 and mozprofile 0.3
219   to allow overriding of preferences via capabilities if those have been
220   already set in the profile
222 - Library dependencies upgraded to mozversion 0.1.2 to only use the
223   normalized path of the Firefox binary for version checks but not to
224   actually start the browser, which broke several components in Firefox
225   on Windows
227 ### Fixed
229 - The [SetWindowRect] command now returns the [WindowRectResponse]
230   when it is done
232 - Use ASCII versions of array symbols to properly display them in the
233   Windows command prompt
235 - Use [`SessionNotCreated`] error instead of [`UnknownError`] if there
236   is no current session
239 0.16.1 (2017-04-26)
240 -------------------
242 ### Fixed
244 - Read Firefox version number from stdout when failing
245   to look for the application .ini file (fixes [Selenium
246   #3884](https://github.com/SeleniumHQ/selenium/issues/3884))
248 - Session is now ended when closing the last Firefox window (fixes
249   [#613](https://github.com/mozilla/geckodriver/issues/613))
252 0.16.0 (2017-04-21)
253 -------------------
255 Note that geckodriver v0.16.0 is only compatible with Selenium 3.4
256 and greater.
258 ### Added
260 - Support for WebDriver-conforming [New Session] negotiation, with
261   `desiredCapabilities`/`requiredCapabilities` negotiation as fallback
263 - Added two new endpoints:
264   - GET `/session/{session id}/window/rect` for [Get Window Rect]
265   - POST `/session/{session id}/window/rect` for [Set Window Rect]
267 - Align errors with the [WebDriver errors]:
268   - Introduces new errors [`ElementClickIntercepted`],
269   [`ElementNotInteractable`], [`InvalidCoordinates`], [`NoSuchCookie`],
270   [`UnableToCaptureScreen`], and [`UnknownCommand`]
271   - Removes `ElementNotVisible` and `InvalidElementCoordinates` errors
273 ### Removed
275 - Removed following list of unused endpoints:
276   - GET `/session/{session id}/alert_text`
277   - POST `/session/{session id}/alert_text`
278   - POST `/session/{session id}/accept_alert`
279   - POST `/session/{session id}/dismiss_alert`
280   - GET `/session/{session id}/window_handle`
281   - DELETE `/session/{session id}/window_handle`
282   - POST `/session/{session id}/execute_async`
283   - POST `/session/{session id}/execute`
285 ### Changed
287 - [`SendKeysParameters`], which is used for the [Element Send Keys] and
288   [Send Alert Text] commands, has been updated to take a string `text`
289   field
291 - [`CookieResponse`] and [`CloseWindowResponse`] fixed to be properly
292   wrapped in a `value` field, like other responses
294 - Allow negative numbers for `x` and `y` fields in `pointerMove` action
296 - Disable Flash and the plugin container in Firefox by
297   default, which should help mitigate the “Plugin Container
298   for Firefox has stopped wroking” problems [many users were
299   reporting](https://github.com/mozilla/geckodriver/issues/225) when
300   deleting a session
302 - Preferences passed in a profile now take precedence over
303   set of default preferences defined by geckodriver (fixed by
304   [Marc Fisher](https://github.com/DrMarcII))
305   - The exceptions are the `marionette.port` and `marionette.log.level`
306     preferences and their fallbacks, which are set unconditionally and
307     cannot be overriden
309 - Remove default preference that disables unsafe CPOW checks
311 - WebDriver library updated to 0.25.2
313 ### Fixed
315 - Fix for the “corrupt deflate stream” exception that
316   sometimes occured when trying to write an empty profile by
317   [@kirhgoph](https://github.com/kirhgoph)
319 - Recognise `sslProxy` and `sslProxyPort` entries in the proxy
320   configuration object (fixed by [Jason Juang])
322 - Fix “`httpProxyPort` was not an integer” error (fixed by [Jason
323   Juang])
325 - Fix broken unmarshaling of _Get Timeouts_ response format from Firefox
326   52 and earlier (fixed by [Jason Juang])
328 - Allow preferences in `moz:firefoxOptions` to be both positive- and
329   negative integers (fixed by [Jason Juang])
331 - Allow IPv6 hostnames in the proxy configuration object
333 - i686-unknown-linux-musl (Linux 32-bit) build fixed
335 - Log messages from other Rust modules are now ignored
337 - Improved log messages to the HTTPD
340 0.15.0 (2017-03-08)
341 -------------------
343 ### Added
345 - Added routing and parsing for the [Get Timeouts] command
347 ### Changed
349 - All HTTP responses are now wrapped in `{value: …}` objects per the
350   WebDriver specification; this may likely require you to update your
351   client library
353 - Pointer move action’s `element` key changed to `origin`, which
354   lets pointer actions originate within the context of the viewport,
355   the pointer’s current position, or from an element
357 - Now uses about:blank as the new tab document; this was previously
358   disabled due to [bug 1333736](https://bugzil.la/1333736) in Marionette
360 - WebDriver libary updated to 0.23.0
362 ### Fixed
364 - Aligned the data structure accepted by the [Set Timeouts] command with
365   the WebDriver specification
368 0.14.0 (2017-01-31)
369 -------------------
371 ### Changed
373 - Firefox process is now terminated and session ended when the last
374   window is closed
376 - WebDriver library updated to version 0.20.0
378 ### Fixed
380 - Stacktraces are now included when the error originates from within
381   the Rust stack
383 - HTTPD now returns correct response headers for `Content-Type` and
384   `Cache-Control` thanks to [Mike Pennisi]
387 0.13.0 (2017-01-06)
388 -------------------
390 ### Changed
392 - When navigating to a document with an insecure- or otherwise invalid
393   TLS certificate, an [insecure certificate] error will be returned
395 - On macOS, deducing Firefox’ location on the system will look for
396   _firefox-bin_ on the system path (`PATH` environmental variable) before
397   looking in the applications folder
399 - Window position coordinates are allowed to be negative numbers, to
400   cater for maximised window positioning on Windows
402 - WebDriver library updated to version 0.18.0
404 ### Fixed
406 - Check for single-character key codes in action sequences now counts
407   characters instead of bytes
410 0.12.0 (2017-01-03)
411 -------------------
413 ### Added
415 - Added [Take Element Screenshot] command
417 - Added new [Status] command
419 - Added routing for the [Get Timeouts] command, but it is not yet
420   implemented in Marionette, and will return an _unsupported operation_
421   error until it is
423 - Implemented routing for [new actions API](Actions), but it too is not
424   yet fully implemented in Marionette
426 ### Changed
428 - [Synced Firefox
429   preferences](https://github.com/mozilla/geckodriver/commit/2bfdc3ec8151c427a6a75a6ba3ad203459540495)
430   with those used in Mozilla automation
432 - Default log level for debug builds of Firefox, which used to be `DEBUG`,
433   changed to `INFO`-level
435 - WebDriver library dependency upgraded to 0.17.1
437 - Using _session not created_ error when failing to start session
439 - geckodriver will exit with exit code 69 to indicate that the port
440   is unavailable
442 ### Fixed
444 - Improved logging when starting Firefox
446 - Reverted to synchronous logging, which should address cases of
447   inconsistent output when failing to bind to port
449 - Clarified in README that geckodriver is not supported on Windows XP
451 - Added documentation of supported capabilities to [README]
453 - Included capabilities example in the [README]
456 0.11.1 (2016-10-10)
457 -------------------
459 ### Fixed
461 - Version number in binary now reflects the release version
464 0.11.0 (2016-10-10)
465 -------------------
467 ### Added
469 - Introduced continous integration builds for Linux- and Windows 32-bit
470   binaries
472 - Added commands for setting- and getting the window position
474 - Added new extension commands for finding an element’s anonymous
475   children and querying its attributes; accessible through the
476   `/session/{sessionId}/moz/xbl/{elementId}/anonymous_children`
477   to return all anonymous children and
478   `/session/{sessionId}/moz/xbl/{elementId}/anonymous_by_attribute` to
479   return an anonymous element by a name and attribute query
481 - Introduced a `moz:firefoxOptions` capability to customise a Firefox
482   session:
484   - The `binary`, `args`, and `profile` entries on this dictionary
485     is equivalent to the old `firefox_binary`, `firefox_args`, and
486     `firefox_profile` capabilities, which have now all been removed
488   - The `log` capability takes a dictionary such as `{log: "trace"}`
489     to enable trace level verbosity in Gecko
491   - The `prefs` capability lets you define Firefox preferences through
492     capabilities
494 - Re-introduced the `--webdriver-port` argument as a hidden alias to
495   `--port`
497 ### Changed
499 - `firefox_binary`, `firefox_args`, and `firefox_profile` capabilities
500   removed in favour of the `moz:firefoxOptions` dictionary detailed above
501   and in the [README]
503 - Removed `--no-e10s` flag, and geckodriver will from now rely on the
504   Firefox default multiprocessing settings (override using preferences)
506 - Disable pop-up blocker in the default profile by @juangj
508 - Changed Rust compiler version to 1.12 (beta)
509   temporarily because of [trouble linking Musl
510   binaries](https://github.com/rust-lang/rust/issues/34978)
512 - Replaced _env_logger_ logging facility with the _slog_ package,
513   causing the `RUST_LOG` environment variable to no longer have any affect
515 - Updated the WebDriver Rust library to version 0.15
517 ### Fixed
519 - Corrected link to repository in Cargo metadata
521 - Verbosity shorthand flag `-v[v]` now works again, following the
522   replacement of the argument parsing library in the previous release
524 - When the HTTPD fails to start, errors are propagated to the user
526 - Disabled the additional welcome URL
527   (`startup.homepage_welcome_url.additional`) so that officially branded
528   Firefox builds do not start with two open tabs in fresh profiles
530 - Disabled homepage override URL redirection on milestone upgrades,
531   which means a tab with an upgrade notice is not displayed when launching
532   a new Firefox version
535 0.10.0 (2016-08-02)
536 -------------------
538 ### Changed
540 - Use multi-process Firefox (e10s) by default, added flag `--no-e10s`
541   to disable it and removed `--e10s` flag
543 - Disable autofilling of forms by default by [Sven Jost]
545 - Replace _argparse_ with _clap_ for arguments parsing
547 ### Fixed
549 - Attempt to deploy a single file from Travis when making a release
551 - Grammar fix in [README]
554 0.9.0 (2016-06-30)
555 ------------------
557 ### Added
559 - Add ability to use `firefox_binary` capability to define location of
560   Firefox to use
562 - Automatically detect the default Firefox path if one is not given
564 - Cross-compile to Windows and ARMv7 (HF) in CI
566 - Add Musl C library-backed static binaries in CI
568 - Add `-v`, `-vv`, and `--log LEVEL` flags to increase Gecko verbosity
570 - Add Get Element Property endpoint
572 - Add new `--version` flag showing copying information and a link to
573   the repository
575 ### Changed
577 - Now connects to a Marionette on a random port by default
579 - Update webdriver-rust library dependency
581 - Migrated to use Travis to deploy new releases
583 - Reduced amount of logging
585 - Introduced a changelog (this)
588 0.8.0 (2016-06-07)
589 ------------------
591 ### Added
593 - Allow specifying array of arguments to the Firefox binary through the
594   `firefox_args` capability
596 - Pass parameters with [New Session] command
598 ### Changed
600 - Change product name to _geckodriver_
602 - Make README more exhaustive
604 - Quit Firefox when deleting a session
606 - Update webdriver-rust library
608 - Update dependencies
610 ### Fixed
612 - Fix tests
614 - FIx typo in error message for parsing errors
617 0.7.1 (2016-04-27)
618 ------------------
620 ### Added
622 - Add command line flag for using e10s enabled Firefox by [Kalpesh
623   Krishna]
625 - Allow providing custom profiles
627 ### Changed
629 - Allow binding to an IPv6 address by [Jason Juang]
631 - By default, connect to host-agnostic localhost by [Jason Juang]
633 - Make `GeckoContextParameters` public
635 - Update dependencies
637 ### Fixed
639 - Squash rustc 1.6 warnings by using `std::thread::sleep(dur: Duration)`
642 0.6.2 (2016-01-20)
643 ------------------
645 ### Added
647 - Add LICENSE file from [Joshua Burning]
649 - Schedule builds in CI on pushes and pull requests
651 ### Changed
653 - Enable CPOWs in Marionette
656 0.6.0 (2016-01-12)
657 ------------------
659 ### Added
661 - Add Get Page Source endpoint
663 ### Changed
665 - Handle arrays being sent from Marionette
667 - Correct build steps in [README]
669 - Update what properties are read from errors sent by Marionette
671 - Update dependencies
674 0.5.0 (2015-12-10)
675 ------------------
677 ### Changed
679 - Update argparse dependency to use Cargo
681 - Update to the latest version of the Marionette wire protocol
683 - Update to latest webdriver-rust library
685 - Update dependencies
688 0.4.2 (2015-10-02)
689 ------------------
691 ### Changed
693 - Skip compiling optional items in hyper
696 0.4.1 (2015-10-02)
697 ------------------
699 ### Changed
701 - Update webdriver-rust library
703 - Update dependencies
706 0.4.0 (2015-09-28)
707 ------------------
709 ### Added
711 - Add command extensions for switching between content- and chrome
712   contexts
714 - Add more documentation from [Vlad Filippov]
716 ### Changed
718 - Update Cargo.lock with new dependencies for building
720 - Update for protocol updates that flatten commands
722 - Update to new protocol error handling
724 - Update for Marionette protocol version 3 changes
726 - Strip any leading and trailing `{}` from the `sessionId` Marionette
727   returns
729 - Update dependencies
731 ### Fixed
733 - Fix `GetCSSValue` message to send correct key `propertyName`
735 - Fix example in documentation from @vladikoff
738 0.3.0 (2015-08-17)
739 ------------------
741 ### Added
743 - Add support for finding elements in subtrees
746 0.2.0 (2015-05-20)
747 ------------------
749 ### Added
751 - Extra debug messages
753 - Add ability to set WebDriver port
755 - Add support for getting the active element
757 - Add support for `GetCookies` and `DeleteCookie`/`DeleteCookies`
759 - Add preferences that switch off certain features not required for
760   WebDriver tests
762 ### Changed
764 - Make failing to communicate with Firefox a fatal error that closes
765   the session
767 - Shut down session only when loosing connection
769 - Better handling of missing command line flags
771 - Poll for connection every 100ms rather than every 100s
773 - Switch to string-based error codes
775 - Switch webdriver-rust library dependency to be pulled from git
777 - Update dependencies
779 ### Fixed
781 - Handle null id for switching to frame more correctly
784 0.1.0 (2015-04-09)
785 ------------------
787 ### Added
789 - Add proxy for converting WebDriver HTTP protocol to Marionette protocol
791 - Add endpoints for modal dialogue support
793 - Allow connecting to a running Firefox instance
795 - Add explicit Cargo.lock file
797 - Start Firefox when we get a [NewSession] command
799 - Add flag parsing and address parsing
801 - Add basic error handling
803 ### Changed
805 - Update for Rust beta
807 - Switch to new IO libraries
809 - Pin webdriver-rust commit so we can upgrade rustc versions independently
811 - Set preferences when starting Firefox
813 - Improve some error messages
815 - Re-enable environment variable based logging
817 ### Fixed
819 - Fix Get Element Rect command to return floats instead of integers
821 - Fix passing of web elements to Switch To Frame command
823 - Fix serialisation of script commands
825 - Fix assorted bugs found by the Selenium test suite
827 - Fix conversion of Find Element/Find Elements responses from Marionette
828   to WebDriver
830 - Fixed build by updating Cargo.lock with new dependencies for building
832 - Squash compile warnings
836 [README]: https://github.com/mozilla/geckodriver/blob/master/README.md
837 [Browser Toolbox]: https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox
839 [`CloseWindowResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CloseWindowResponse.html
840 [`CookieResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CookieResponse.html
841 [`DeleteSession`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.DeleteSession
842 [`ElementClickIntercepted`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.ElementClickIntercepted
843 [`ElementNotInteractable`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.ElementNotInteractable
844 [`FullscreenWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.FullscreenWindow
845 [`GetNamedCookie`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.GetNamedCookie
846 [`GetWindowRect`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.GetWindowRect
847 [`InvalidCoordinates`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.InvalidCoordinates
848 [`MaximizeWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.MaximizeWindow
849 [`MinimizeWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.MinimizeWindow
850 [`NewSession`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.NewSession
851 [`NoSuchCookie`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.NoSuchCookie
852 [`RectResponse`]: https://docs.rs/webdriver/0.27.0/webdriver/response/struct.RectResponse.html
853 [`SendKeysParameters`]: https://docs.rs/webdriver/newest/webdriver/command/struct.SendKeysParameters.html
854 [`SessionNotCreated`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.SessionNotCreated
855 [`SetTimeouts`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.SetTimeouts
856 [`SetWindowRect`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.SetWindowRect
857 [`StaleElementReference`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.StaleElementReference
858 [`UnableToCaptureScreen`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnableToCaptureScreen
859 [`UnknownCommand`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnknownCommand
860 [`UnknownError`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnknownError
861 [`WindowRectParameters`]: https://docs.rs/webdriver/newest/webdriver/command/struct.WindowRectParameters.html
863 [mozrunner crate]: https://crates.io/crates/mozrunner
864 [webdriver crate]: https://crates.io/crates/webdriver
866 [Actions]: https://w3c.github.io/webdriver/webdriver-spec.html#actions
867 [Delete Session]: https://w3c.github.io/webdriver/webdriver-spec.html#delete-session
868 [Element Click]: https://w3c.github.io/webdriver/webdriver-spec.html#element-click
869 [Get Timeouts]: https://w3c.github.io/webdriver/webdriver-spec.html#get-timeouts
870 [Get Window Rect]: https://w3c.github.io/webdriver/webdriver-spec.html#get-window-rect
871 [insecure certificate]: https://w3c.github.io/webdriver/webdriver-spec.html#dfn-insecure-certificate
872 [Minimize Window]: https://w3c.github.io/webdriver/webdriver-spec.html#minimize-window
873 [New Session]: https://w3c.github.io/webdriver/webdriver-spec.html#new-session
874 [Send Alert Text]: https://w3c.github.io/webdriver/webdriver-spec.html#send-alert-text
875 [Set Timeouts]: https://w3c.github.io/webdriver/webdriver-spec.html#set-timeouts
876 [Set Window Rect]: https://w3c.github.io/webdriver/webdriver-spec.html#set-window-rect
877 [Status]: https://w3c.github.io/webdriver/webdriver-spec.html#status
878 [Take Element Screenshot]: https://w3c.github.io/webdriver/webdriver-spec.html#take-element-screenshot
879 [WebDriver errors]: https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors
881 [Jason Juang]: https://github.com/juangj
882 [Joshua Bruning]: https://github.com/joshbruning
883 [Kalpesh Krishna]: https://github.com/martiansideofthemoon
884 [Mike Pennisi]: https://github.com/jugglinmike
885 [Sven Jost]: https://github/mythsunwind
886 [Vlad Filippov]: https://github.com/vladikoff