1Change log
2==========
3
4All notable changes to this program is documented in this file.
5
6Unreleased
7----------
8
9### Added
10
11- New `--jsdebugger` flag to open the Browser Toolbox when Firefox
12  launches.  This is useful for debugging Marionette internals.
13
14- Introduced the temporary, boolean capability
15  `moz:useNonSpecCompliantPointerOrigin` to disable the WebDriver
16  conforming behavior of calculating the Pointer Origin.
17
18### Changed
19
20- HTTP status code for the [`StaleElementReference`] error changed
21  from 400 (Bad Request) to 404 (Not Found)
22
23- Backtraces from geckodriver no longer substitute for missing
24  Marionette stacktraces
25
26- `Delete Session` now allows Firefox to safely shutdown within 70s before
27  force-killing the process
28
29- Changed preference used to disable shield studies to `app.normandy.api_url`.
30
31### Fixed
32
33- Improved error messages for malformed capabilities
34
35
360.19.1 (2017-10-30)
37-------------------
38
39### Changed
40
41- Search suggestions in the location bar turned off as not to
42  trigger network connections
43
44- Block addons incompatible with E10s
45
46### Fixed
47
48- Marionette stacktraces are now correctly propagated
49
50- Some error messages have been clarified
51
52### Removed
53
54- Removed obsolete `socksUsername` and `socksPassword` proxy
55  configuration keys because neither were picked up or recognised
56
57
580.19.0 (2017-09-16)
59-------------------
60
61Note that with geckodriver 0.19.0 the following versions are recommended:
62- Firefox 55.0 (and greater)
63- Selenium 3.5 (and greater)
64
65### Added
66
67- Added endpoint:
68  - POST `/session/{session id}/window/minimize` for the [Minimize Window]
69    command
70
71- Added preference `extensions.shield-recipe-client.api_url` to disable
72  shield studies which could unexpectedly change the behavior of Firefox
73
74- Introduced the temporary, boolean capability `moz:webdriverClick` to
75  enable the WebDriver conforming behavior of the [Element Click] command
76
77- Added crashreporter environment variables to better control the browser
78  in case of crashes
79
80- Added preference `dom.file.createInChild` set to true to allow file
81  object creation in content processes
82
83### Changed
84
85- Log all used application arguments and not only `-marionette`
86
87- Early abort connection attempts to Marionette if the Firefox process
88  closed unexpectetly
89
90- Removed deprecated `socksProxyVersion` in favor of `socksVersion`
91
92- Removed `ftpProxyPort`, `httpProxyPort`, `sslProxyPort`, and
93  `socksProxyPort` because _ports_ have to be set for `ftpProxy`,
94  `httpProxy`, `sslProxy`, and `socksProxy` using ":<PORT>"
95
96- The `proxyType` `noproxy` has been replaced with `direct` in accordance
97  with recent WebDriver specification changes
98
99- The [`WindowRectParameters`] have been updated to return signed 32-bit
100  integers in accordance with the CSS and WebDriver specifications, and
101  to be more liberal with the input types
102
103- Mapped the [`FullscreenWindow`] to the correct Marionette command
104
105- To make sure no browser process is left behind when the [`NewSession`]
106  fails, the process is closed immediately now
107
108- `/moz/addon/install` command accepts an `addon` parameter, in lieu of
109  `path`, containing an addon as a Base64 string (fixed by [Jason Juang])
110
111- [webdriver crate] upgraded to version 0.31.0
112
113- [mozrunner crate] upgraded to version 0.5.0
114
115### Removed
116
117- Removed the following obsolete preferences for Firefox:
118  - `browser.safebrowsing.enabled`
119  - `browser.safebrowsing.forbiddenURIs.enabled`
120  - `marionette.defaultPrefs.port`
121  - `marionette.logging`
122
123
1240.18.0 (2017-07-10)
125-------------------
126
127### Changed
128
129- [`RectResponse`] permits returning floats for `width` and `height`
130  fields
131
132- New type [`CookieResponse`] for the [`GetNamedCookie`] command returns
133  a single cookie, as opposed to an array of a single cookie
134
135- To pick up a prepared profile from the filesystem, it is now possible
136  to pass `["-profile", "/path/to/profile"]` in the `args` array on
137  `moz:firefoxOptions`
138
139- geckodriver now recommends Firefox 53 and greater
140
141- Version information (`--version`) contains the hash from from the
142  commit used to build geckodriver
143
144- geckodriver version logged on startup
145
146- [webdriver crate] upgraded to version 0.27.0
147
148- [mozrunner crate] upgraded to version 0.4.1
149
150### Fixed
151
152- The [`SetTimeouts`] command maps to the Marionette `setTimeouts`
153  command, which makes geckodriver compatible with Firefox 56 and greater
154
155- Linux x86 (i686-unknown-linux-musl) builds are fixed
156
157
1580.17.0 (2017-06-09)
159-------------------
160
161### Added
162
163- Added endpoints:
164  - POST `/session/{session id}/window/fullscreen` to invoke the window
165    manager-specific `full screen` operation
166  - POST `/session/{session id}/moz/addon/install` to install an extension
167    (Gecko only)
168  - POST `/session/{session id}/moz/addon/uninstall` to uninstall an
169    extension (Gecko only)
170
171### Changed
172
173- Increasing the length of the `network.http.phishy-userpass-length`
174  preference will cause Firefox to not prompt when navigating to a
175  website with a username or password in the URL
176
177- Library dependencies upgraded to mozrunner 0.4 and mozprofile 0.3
178  to allow overriding of preferences via capabilities if those have been
179  already set in the profile
180
181- Library dependencies upgraded to mozversion 0.1.2 to only use the
182  normalized path of the Firefox binary for version checks but not to
183  actually start the browser, which broke several components in Firefox
184  on Windows
185
186### Fixed
187
188- The [SetWindowRect] command now returns the [WindowRectResponse]
189  when it is done
190
191- Use ASCII versions of array symbols to properly display them in the
192  Windows command prompt
193
194- Use [`SessionNotCreated`] error instead of [`UnknownError`] if there
195  is no current session
196
197
1980.16.1 (2017-04-26)
199-------------------
200
201### Fixed
202
203- Read Firefox version number from stdout when failing
204  to look for the application .ini file (fixes [Selenium
205  #3884](https://github.com/SeleniumHQ/selenium/issues/3884))
206
207- Session is now ended when closing the last Firefox window (fixes
208  [#613](https://github.com/mozilla/geckodriver/issues/613))
209
210
2110.16.0 (2017-04-21)
212-------------------
213
214Note that geckodriver v0.16.0 is only compatible with Selenium 3.4
215and greater.
216
217### Added
218
219- Support for WebDriver-conforming [New Session] negotiation, with
220  `desiredCapabilities`/`requiredCapabilities` negotiation as fallback
221
222- Added two new endpoints:
223  - GET `/session/{session id}/window/rect` for [Get Window Rect]
224  - POST `/session/{session id}/window/rect` for [Set Window Rect]
225
226- Align errors with the [WebDriver errors]:
227  - Introduces new errors [`ElementClickIntercepted`],
228  [`ElementNotInteractable`], [`InvalidCoordinates`], [`NoSuchCookie`],
229  [`UnableToCaptureScreen`], and [`UnknownCommand`]
230  - Removes `ElementNotVisible` and `InvalidElementCoordinates` errors
231
232### Removed
233
234- Removed following list of unused endpoints:
235  - GET `/session/{session id}/alert_text`
236  - POST `/session/{session id}/alert_text`
237  - POST `/session/{session id}/accept_alert`
238  - POST `/session/{session id}/dismiss_alert`
239  - GET `/session/{session id}/window_handle`
240  - DELETE `/session/{session id}/window_handle`
241  - POST `/session/{session id}/execute_async`
242  - POST `/session/{session id}/execute`
243
244### Changed
245
246- [`SendKeysParameters`], which is used for the [Element Send Keys] and
247  [Send Alert Text] commands, has been updated to take a string `text`
248  field
249
250- [`CookieResponse`] and [`CloseWindowResponse`] fixed to be properly
251  wrapped in a `value` field, like other responses
252
253- Allow negative numbers for `x` and `y` fields in `pointerMove` action
254
255- Disable Flash and the plugin container in Firefox by
256  default, which should help mitigate the “Plugin Container
257  for Firefox has stopped wroking” problems [many users were
258  reporting](https://github.com/mozilla/geckodriver/issues/225) when
259  deleting a session
260
261- Preferences passed in a profile now take precedence over
262  set of default preferences defined by geckodriver (fixed by
263  [Marc Fisher](https://github.com/DrMarcII))
264  - The exceptions are the `marionette.port` and `marionette.log.level`
265    preferences and their fallbacks, which are set unconditionally and
266    cannot be overriden
267
268- Remove default preference that disables unsafe CPOW checks
269
270- WebDriver library updated to 0.25.2
271
272### Fixed
273
274- Fix for the “corrupt deflate stream” exception that
275  sometimes occured when trying to write an empty profile by
276  [@kirhgoph](https://github.com/kirhgoph)
277
278- Recognise `sslProxy` and `sslProxyPort` entries in the proxy
279  configuration object (fixed by [Jason Juang])
280
281- Fix “`httpProxyPort` was not an integer” error (fixed by [Jason
282  Juang])
283
284- Fix broken unmarshaling of _Get Timeouts_ response format from Firefox
285  52 and earlier (fixed by [Jason Juang])
286
287- Allow preferences in `moz:firefoxOptions` to be both positive- and
288  negative integers (fixed by [Jason Juang])
289
290- Allow IPv6 hostnames in the proxy configuration object
291
292- i686-unknown-linux-musl (Linux 32-bit) build fixed
293
294- Log messages from other Rust modules are now ignored
295
296- Improved log messages to the HTTPD
297
298
2990.15.0 (2017-03-08)
300-------------------
301
302### Added
303
304- Added routing and parsing for the [Get Timeouts] command
305
306### Changed
307
308- All HTTP responses are now wrapped in `{value: …}` objects per the
309  WebDriver specification; this may likely require you to update your
310  client library
311
312- Pointer move action’s `element` key changed to `origin`, which
313  lets pointer actions originate within the context of the viewport,
314  the pointer’s current position, or from an element
315
316- Now uses about:blank as the new tab document; this was previously
317  disabled due to [bug 1333736](https://bugzil.la/1333736) in Marionette
318
319- WebDriver libary updated to 0.23.0
320
321### Fixed
322
323- Aligned the data structure accepted by the [Set Timeouts] command with
324  the WebDriver specification
325
326
3270.14.0 (2017-01-31)
328-------------------
329
330### Changed
331
332- Firefox process is now terminated and session ended when the last
333  window is closed
334
335- WebDriver library updated to version 0.20.0
336
337### Fixed
338
339- Stacktraces are now included when the error originates from within
340  the Rust stack
341
342- HTTPD now returns correct response headers for `Content-Type` and
343  `Cache-Control` thanks to [Mike Pennisi]
344
345
3460.13.0 (2017-01-06)
347-------------------
348
349### Changed
350
351- When navigating to a document with an insecure- or otherwise invalid
352  TLS certificate, an [insecure certificate] error will be returned
353
354- On macOS, deducing Firefox’ location on the system will look for
355  _firefox-bin_ on the system path (`PATH` environmental variable) before
356  looking in the applications folder
357
358- Window position coordinates are allowed to be negative numbers, to
359  cater for maximised window positioning on Windows
360
361- WebDriver library updated to version 0.18.0
362
363### Fixed
364
365- Check for single-character key codes in action sequences now counts
366  characters instead of bytes
367
368
3690.12.0 (2017-01-03)
370-------------------
371
372### Added
373
374- Added [Take Element Screenshot] command
375
376- Added new [Status] command
377
378- Added routing for the [Get Timeouts] command, but it is not yet
379  implemented in Marionette, and will return an _unsupported operation_
380  error until it is
381
382- Implemented routing for [new actions API](Actions), but it too is not
383  yet fully implemented in Marionette
384
385### Changed
386
387- [Synced Firefox
388  preferences](https://github.com/mozilla/geckodriver/commit/2bfdc3ec8151c427a6a75a6ba3ad203459540495)
389  with those used in Mozilla automation
390
391- Default log level for debug builds of Firefox, which used to be `DEBUG`,
392  changed to `INFO`-level
393
394- WebDriver library dependency upgraded to 0.17.1
395
396- Using _session not created_ error when failing to start session
397
398- geckodriver will exit with exit code 69 to indicate that the port
399  is unavailable
400
401### Fixed
402
403- Improved logging when starting Firefox
404
405- Reverted to synchronous logging, which should address cases of
406  inconsistent output when failing to bind to port
407
408- Clarified in README that geckodriver is not supported on Windows XP
409
410- Added documentation of supported capabilities to [README]
411
412- Included capabilities example in the [README]
413
414
4150.11.1 (2016-10-10)
416-------------------
417
418### Fixed
419
420- Version number in binary now reflects the release version
421
422
4230.11.0 (2016-10-10)
424-------------------
425
426### Added
427
428- Introduced continous integration builds for Linux- and Windows 32-bit
429  binaries
430
431- Added commands for setting- and getting the window position
432
433- Added new extension commands for finding an element’s anonymous
434  children and querying its attributes; accessible through the
435  `/session/{sessionId}/moz/xbl/{elementId}/anonymous_children`
436  to return all anonymous children and
437  `/session/{sessionId}/moz/xbl/{elementId}/anonymous_by_attribute` to
438  return an anonymous element by a name and attribute query
439
440- Introduced a `moz:firefoxOptions` capability to customise a Firefox
441  session:
442
443  - The `binary`, `args`, and `profile` entries on this dictionary
444    is equivalent to the old `firefox_binary`, `firefox_args`, and
445    `firefox_profile` capabilities, which have now all been removed
446
447  - The `log` capability takes a dictionary such as `{log: "trace"}`
448    to enable trace level verbosity in Gecko
449
450  - The `prefs` capability lets you define Firefox preferences through
451    capabilities
452
453- Re-introduced the `--webdriver-port` argument as a hidden alias to
454  `--port`
455
456### Changed
457
458- `firefox_binary`, `firefox_args`, and `firefox_profile` capabilities
459  removed in favour of the `moz:firefoxOptions` dictionary detailed above
460  and in the [README]
461
462- Removed `--no-e10s` flag, and geckodriver will from now rely on the
463  Firefox default multiprocessing settings (override using preferences)
464
465- Disable pop-up blocker in the default profile by @juangj
466
467- Changed Rust compiler version to 1.12 (beta)
468  temporarily because of [trouble linking Musl
469  binaries](https://github.com/rust-lang/rust/issues/34978)
470
471- Replaced _env_logger_ logging facility with the _slog_ package,
472  causing the `RUST_LOG` environment variable to no longer have any affect
473
474- Updated the WebDriver Rust library to version 0.15
475
476### Fixed
477
478- Corrected link to repository in Cargo metadata
479
480- Verbosity shorthand flag `-v[v]` now works again, following the
481  replacement of the argument parsing library in the previous release
482
483- When the HTTPD fails to start, errors are propagated to the user
484
485- Disabled the additional welcome URL
486  (`startup.homepage_welcome_url.additional`) so that officially branded
487  Firefox builds do not start with two open tabs in fresh profiles
488
489- Disabled homepage override URL redirection on milestone upgrades,
490  which means a tab with an upgrade notice is not displayed when launching
491  a new Firefox version
492
493
4940.10.0 (2016-08-02)
495-------------------
496
497### Changed
498
499- Use multi-process Firefox (e10s) by default, added flag `--no-e10s`
500  to disable it and removed `--e10s` flag
501
502- Disable autofilling of forms by default by [Sven Jost]
503
504- Replace _argparse_ with _clap_ for arguments parsing
505
506### Fixed
507
508- Attempt to deploy a single file from Travis when making a release
509
510- Grammar fix in [README]
511
512
5130.9.0 (2016-06-30)
514------------------
515
516### Added
517
518- Add ability to use `firefox_binary` capability to define location of
519  Firefox to use
520
521- Automatically detect the default Firefox path if one is not given
522
523- Cross-compile to Windows and ARMv7 (HF) in CI
524
525- Add Musl C library-backed static binaries in CI
526
527- Add `-v`, `-vv`, and `--log LEVEL` flags to increase Gecko verbosity
528
529- Add Get Element Property endpoint
530
531- Add new `--version` flag showing copying information and a link to
532  the repository
533
534### Changed
535
536- Now connects to a Marionette on a random port by default
537
538- Update webdriver-rust library dependency
539
540- Migrated to use Travis to deploy new releases
541
542- Reduced amount of logging
543
544- Introduced a changelog (this)
545
546
5470.8.0 (2016-06-07)
548------------------
549
550### Added
551
552- Allow specifying array of arguments to the Firefox binary through the
553  `firefox_args` capability
554
555- Pass parameters with [New Session] command
556
557### Changed
558
559- Change product name to _geckodriver_
560
561- Make README more exhaustive
562
563- Quit Firefox when deleting a session
564
565- Update webdriver-rust library
566
567- Update dependencies
568
569### Fixed
570
571- Fix tests
572
573- FIx typo in error message for parsing errors
574
575
5760.7.1 (2016-04-27)
577------------------
578
579### Added
580
581- Add command line flag for using e10s enabled Firefox by [Kalpesh
582  Krishna]
583
584- Allow providing custom profiles
585
586### Changed
587
588- Allow binding to an IPv6 address by [Jason Juang]
589
590- By default, connect to host-agnostic localhost by [Jason Juang]
591
592- Make `GeckoContextParameters` public
593
594- Update dependencies
595
596### Fixed
597
598- Squash rustc 1.6 warnings by using `std::thread::sleep(dur: Duration)`
599
600
6010.6.2 (2016-01-20)
602------------------
603
604### Added
605
606- Add LICENSE file from [Joshua Burning]
607
608- Schedule builds in CI on pushes and pull requests
609
610### Changed
611
612- Enable CPOWs in Marionette
613
614
6150.6.0 (2016-01-12)
616------------------
617
618### Added
619
620- Add Get Page Source endpoint
621
622### Changed
623
624- Handle arrays being sent from Marionette
625
626- Correct build steps in [README]
627
628- Update what properties are read from errors sent by Marionette
629
630- Update dependencies
631
632
6330.5.0 (2015-12-10)
634------------------
635
636### Changed
637
638- Update argparse dependency to use Cargo
639
640- Update to the latest version of the Marionette wire protocol
641
642- Update to latest webdriver-rust library
643
644- Update dependencies
645
646
6470.4.2 (2015-10-02)
648------------------
649
650### Changed
651
652- Skip compiling optional items in hyper
653
654
6550.4.1 (2015-10-02)
656------------------
657
658### Changed
659
660- Update webdriver-rust library
661
662- Update dependencies
663
664
6650.4.0 (2015-09-28)
666------------------
667
668### Added
669
670- Add command extensions for switching between content- and chrome
671  contexts
672
673- Add more documentation from [Vlad Filippov]
674
675### Changed
676
677- Update Cargo.lock with new dependencies for building
678
679- Update for protocol updates that flatten commands
680
681- Update to new protocol error handling
682
683- Update for Marionette protocol version 3 changes
684
685- Strip any leading and trailing `{}` from the `sessionId` Marionette
686  returns
687
688- Update dependencies
689
690### Fixed
691
692- Fix `GetCSSValue` message to send correct key `propertyName`
693
694- Fix example in documentation from @vladikoff
695
696
6970.3.0 (2015-08-17)
698------------------
699
700### Added
701
702- Add support for finding elements in subtrees
703
704
7050.2.0 (2015-05-20)
706------------------
707
708### Added
709
710- Extra debug messages
711
712- Add ability to set WebDriver port
713
714- Add support for getting the active element
715
716- Add support for `GetCookies` and `DeleteCookie`/`DeleteCookies`
717
718- Add preferences that switch off certain features not required for
719  WebDriver tests
720
721### Changed
722
723- Make failing to communicate with Firefox a fatal error that closes
724  the session
725
726- Shut down session only when loosing connection
727
728- Better handling of missing command line flags
729
730- Poll for connection every 100ms rather than every 100s
731
732- Switch to string-based error codes
733
734- Switch webdriver-rust library dependency to be pulled from git
735
736- Update dependencies
737
738### Fixed
739
740- Handle null id for switching to frame more correctly
741
742
7430.1.0 (2015-04-09)
744------------------
745
746### Added
747
748- Add proxy for converting WebDriver HTTP protocol to Marionette protocol
749
750- Add endpoints for modal dialogue support
751
752- Allow connecting to a running Firefox instance
753
754- Add explicit Cargo.lock file
755
756- Start Firefox when we get a [NewSession] command
757
758- Add flag parsing and address parsing
759
760- Add basic error handling
761
762### Changed
763
764- Update for Rust beta
765
766- Switch to new IO libraries
767
768- Pin webdriver-rust commit so we can upgrade rustc versions independently
769
770- Set preferences when starting Firefox
771
772- Improve some error messages
773
774- Re-enable environment variable based logging
775
776### Fixed
777
778- Fix Get Element Rect command to return floats instead of integers
779
780- Fix passing of web elements to Switch To Frame command
781
782- Fix serialisation of script commands
783
784- Fix assorted bugs found by the Selenium test suite
785
786- Fix conversion of Find Element/Find Elements responses from Marionette
787  to WebDriver
788
789- Fixed build by updating Cargo.lock with new dependencies for building
790
791- Squash compile warnings
792
793
794
795[README]: https://github.com/mozilla/geckodriver/blob/master/README.md
796
797[`CloseWindowResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CloseWindowResponse.html
798[`CookieResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CookieResponse.html
799[`ElementClickIntercepted`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.ElementClickIntercepted
800[`ElementNotInteractable`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.ElementNotInteractable
801[`FullscreenWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.FullscreenWindow
802[`GetNamedCookie`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.GetNamedCookie
803[`GetWindowRect`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.GetWindowRect
804[`InvalidCoordinates`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.InvalidCoordinates
805[`MaximizeWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.MaximizeWindow
806[`MinimizeWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.MinimizeWindow
807[`NewSession`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.NewSession
808[`NoSuchCookie`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.NoSuchCookie
809[`RectResponse`]: https://docs.rs/webdriver/0.27.0/webdriver/response/struct.RectResponse.html
810[`SendKeysParameters`]: https://docs.rs/webdriver/newest/webdriver/command/struct.SendKeysParameters.html
811[`SessionNotCreated`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.SessionNotCreated
812[`SetTimeouts`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.SetTimeouts
813[`SetWindowRect`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.SetWindowRect
814[`StaleElementReference`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.StaleElementReference
815[`UnableToCaptureScreen`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnableToCaptureScreen
816[`UnknownCommand`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnknownCommand
817[`UnknownError`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnknownError
818[`WindowRectParameters`]: https://docs.rs/webdriver/newest/webdriver/command/struct.WindowRectParameters.html
819
820[mozrunner crate]: https://crates.io/crates/mozrunner
821[webdriver crate]: https://crates.io/crates/webdriver
822
823[Actions]: https://w3c.github.io/webdriver/webdriver-spec.html#actions
824[Element Click]: https://w3c.github.io/webdriver/webdriver-spec.html#element-click
825[Get Timeouts]: https://w3c.github.io/webdriver/webdriver-spec.html#get-timeouts
826[Set Timeouts]: https://w3c.github.io/webdriver/webdriver-spec.html#set-timeouts
827[Get Window Rect]: https://w3c.github.io/webdriver/webdriver-spec.html#get-window-rect
828[Set Window Rect]: https://w3c.github.io/webdriver/webdriver-spec.html#set-window-rect
829[insecure certificate]: https://w3c.github.io/webdriver/webdriver-spec.html#dfn-insecure-certificate
830[Minimize Window]: https://w3c.github.io/webdriver/webdriver-spec.html#minimize-window
831[New Session]: https://w3c.github.io/webdriver/webdriver-spec.html#new-session
832[Send Alert Text]: https://w3c.github.io/webdriver/webdriver-spec.html#send-alert-text
833[Status]: https://w3c.github.io/webdriver/webdriver-spec.html#status
834[Take Element Screenshot]: https://w3c.github.io/webdriver/webdriver-spec.html#take-element-screenshot
835[WebDriver errors]: https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors
836
837[Jason Juang]: https://github.com/juangj
838[Joshua Bruning]: https://github.com/joshbruning
839[Kalpesh Krishna]: https://github.com/martiansideofthemoon
840[Mike Pennisi]: https://github.com/jugglinmike
841[Sven Jost]: https://github/mythsunwind
842[Vlad Filippov]: https://github.com/vladikoff
843