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 144 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.
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!
WebDriver BiDi
- Implemented the new
browsingContext.downloadWillBegin
event, which is emitted when a new download is initiated, either by clicking a link with thedownload
attribute, or in response to a network request with aContent-Disposition
header indicating a file attachment. - Implemented the new
emulation.setScreenOrientationOverride
command, which allows clients to emulate different screen orientations. This command is not limited to mobile devices, but also works for desktop applications. - Implemented the new
emulation.setTimezoneOverride
command, which allows clients to simulate a specific timezone setting. - Enhanced the
emulation.setLocaleOverride
command to also apply the specified settings to sandboxes previously created via WebDriver BiDi. - Fixed a bug where the locale override set via
emulation.setLocaleOverride
was sometimes incorrectly shared between different browsing contexts within the same process. - Enhanced the
browsingContext.navigate
command to avoidNS_BINDING_ABORTED
errors caused by redirects or interruptions occurring after the navigation was already committed.
Marionette
- Reverted the
Scroll Into View
WebDriver algorithm as used by several WebDriver classic commands in Marionette to always use theinstant
scroll behavior. This undoes the change introduced in Firefox 97, which had switched the behavior toauto
. The reversion addresses potential race conditions when scrolling elements that usesmooth
behavior.
Leave a Reply