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 143 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 143, two contributors managed to land fixes and improvements in our codebase:
- Liam (ldebeasi) implemented the logic to emit events for existing contexts when subscribing to the browsingContext.contextCreatedevent.
- Sabina (sabina.zaripova) added an internal helper to make it easier to check our session data.
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
Updated: browsingContext.contextCreated for existing contexts
Updated the browsingContext.contextCreated event to be emitted for all open contexts when subscribing to the event.
New: several commands to record network data
We implemented several new commands for the network module to enable recording network data.
network.addDataCollector adds a network data collector to contexts, userContexts or globally. The collector will record network data corresponding to the provided dataTypes. At the moment, only the "response" data type is supported. A maxEncodedDataSize must also be provided, network data exceeding this size will not be recorded.
network.removeDataCollector removes a previously added network data collector.
network.getData retrieves the data collected for a provided request id, dataType and optionally collector id. When providing a collector id, clients may also pass the disown flag to release the network data from the collector. Note that data is deleted when it is no longer owned by any collector.
network.disownData releases the data for a given request id and dataType from the provided collector id.
Bug fixes:
- Fixed a bug where emulation.setLocaleOverridedid not apply the override to newly created cross-origin iframes.
- Fixed a bug where several commands such as session.subscribewould fail if any tab was unloaded.
- Fixed the browsingContext.navigationCommittedevent so that theurlproperty now includes basic auth credentials.
Leave a Reply