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 151 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 151, Armin Ulrich contributed a fix to WebDriver BiDi:
- Removed an unused helper from our MessageHandler codebase.
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
- Added support for
altitudeAngleandazimuthAngleto pointer actions of subtypetouch. These properties allow simulating touch interactions with precise angular orientation data, specifying the angle at which a pointer contacts a surface and its rotational direction. - Fixed a bug where
UnknownErrorDOM exceptions originating from content pages were incorrectly treated as internal WebDriver errors.
WebDriver BiDi
- Implemented the
browser.setClientWindowStatecommand. This command allows clients to change the OS-level window state of a browser window, such as maximized, minimized, fullscreen, or normal. It also allows repositioning and resizing the window. - Added support for worker realms (for dedicated, shared and service workers) in the
script.getRealmscommand. The command now returns realm information for worker scripts in addition to window contexts. - Included the top-most stack frame in
log.entryAddedevents for all Console API messages. - Improved the
textfield of thelog.entryAddedevent to better align with Firefox DevTools behavior and Google Chrome WebDriver BiDi implementation. - Fixed network event cookies to include all properties, not just
nameandvalue. - Fixed the
network.getDatacommand timing out for redirects. - Fixed the
browsingContext.reloadcommand not resetting the location of a navigated iframe. - Removed the empty
proxycapability from thesession.newcommand response when no proxy is specified.
Marionette
- Enabled browser window repositioning on Linux Wayland in headless mode.
Leave a Reply