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 145 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 145, a new contributor landed two patches in our codebase. Thanks to Khalid AlHaddad for the following fixes:
- Renamed the
add_cookietest fixture toadd_document_cookieto make our cookie tests easier to understand. - Added logic to cleanup leftover cookies added by our tests.
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
emulation.setUserAgentOverridecommand, which allows to override the user-agent string used by the browser either for a set of contexts, user contexts or globally. - Implemented the
browsingContext.downloadEndevent, which is emitted when a download finishes (whether it is successful or canceled). - Updated the destination property of the
network.beforeRequestSentevent to document for top-level navigations. - Updated the
browsingContextdownload events to reuse the same navigation id as the previousbrowsingContext.navigationStartedevent. - Fixed a bug for network data collection, where non-ASCII characters in response bodies were not properly encoded.
- Fixed a bug with the
network.getDatacommand, which would fail for requests with an empty response body. - Fixed a bug where some network events could be flagged as blocked even if they were not.
Leave a Reply