WebDriver is a remote control interface that enables introspection and control of user agents. As such, it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the W3C and consists of two separate specifications: WebDriver classic (HTTP) and the new WebDriver BiDi (Bi-Directional).
This newsletter gives an overview of the work we’ve done as part of the Firefox 152 release cycle.
Contributions
Firefox is an open source project, and we are always happy to receive external code contributions to our WebDriver implementation. We want to give special thanks to everyone who filed issues, bugs and submitted patches.
In Firefox 152, multiple WebDriver bugs were fixed by contributors:
- Khalid AlHaddad extended the webExtension.install command to support installing web extensions enabled in Private Browsing mode.
- Sameem improved the Marionette and WebDriver BiDi screenshot commands to enforce maximum allowed dimensions.
- Amin Amir fixed a bug in browsingContext.sys.mjs where a private field was incorrectly assigned without the # prefix.
WebDriver code is written in JavaScript, Python, and Rust so any web developer can contribute! Read how to setup the work environment and check the list of mentored issues for Marionette, or the list of mentored JavaScript bugs for WebDriver BiDi. Join our chatroom if you need any help to get started!
General
- Improved the Marionette and WebDriver BiDi screenshot commands to enforce maximum allowed dimensions.
WebDriver BiDi
- Extended the
webExtension.installcommand to support installing web extensions in Firefox enabled in Private Browsing mode. - Improved the
browser.setDownloadBehaviorcommand to allow overriding the download target folder before the temporary file is created. - Fixed network events to only forward in-memory cached JavaScript responses when there is a matching network event collector, avoiding unnecessary data forwarding.
Marionette
- Improved the
WebDriver:NavigateandWebDriver:Refreshcommands to properly report errors when triggering the navigation fails, instead of silently ignoring them.
Leave a Reply