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 141 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 141, Spencer (speneth1) added a new helper to easily check if the remote end supports creating new windows.
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
Removed: CDP experimental support
The experimental CDP (Chrome DevTools Protocol) implementation has been completely removed from Firefox, as well as the remote.active-protocols
preference. More details on our previous blog post on this topic.
Removed: remote.system-access-check.enabled
preference
The remote.system-access-check.enabled
preference was removed and can no longer be used to disable system access checks when using WebDriver in Firefox’s chrome scope during testing.
WebDriver BiDi
New: proxy
argument for browser.createUserContext
Added support for the proxy
argument of the browser.createUserContext
command. This allows clients to setup either a "direct"
or "manual"
proxy when creating a user context (ie Firefox Container). Setting a proxy with browser.createUserContext
will override any proxy set via capabilities. Support for additional proxy types will be added later on.
New: browsingContext.historyUpdated
event
Implemented the new browsingContext.historyUpdated
event which is emitted when history.pushState()
, history.replaceState()
or document.open()
is called within the context of a web page.
Updated: Support "default"
value for "sameSite"
cookie property
Updated the WebDriver BiDi cookie APIs to support "default"
value in "sameSite"
property to address recent changes in platform API which wouldn’t allow anymore to set a cookie with "sameSite=None"
and "secure=false"
on HTTP pages.
Bug fixes:
- Updated `browsingContext.navigate` and `browsingContext.reload` commands to wait for the `browsingContext.navigationCommitted` event when using the “wait” condition “none”.
- Improved the error message shown when attempting to permanently install an unpacked, unsigned web extension.
Marionette
Updated: Reduced 200ms click delay
To avoid unnecessary 200ms delays for each call to WebDriver:ElementClick
– even when no navigation occurs – we lowered the click-and-wait timeout for a potential navigation to 50ms for backward compatibility. The timeout is now also configurable and can be completely disabled by users through a preference.
New: Support for CHIPS Cookies
Added support in Marionette for interacting with CHIPS cookies (see MDN page for more information on Cookies Having Independent Partitioned State).
Leave a Reply