Summary: WebDriver-BiDi defines a WebSockets-based, bidirectional, protocol 
for external tools to interact with and control a web browser. The initial 
target use case is automated testing of web applications.

We have previously prototyped this, but we have not yet enabled 
WebDriver-BiDi 
beyond the Nightly channel. We plan to ship this feature in Firefox 101 to 
support external tools such as Selenium, which plan to start using 
WebDriver-BiDi for Firefox.

Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1753997 

Standard: https://w3c.github.io/webdriver-bidi/

Platform coverage: All

Preference: `remote.active-protocols`. Values are `1` (BiDi only), `2` (CDP 
only) and `3` (CDP and BiDi). Will be set to `3` for all channels 
(currently 
set to `3` in Firefox Nightly and `2` everywhere else).  Enabling the server
for these protocols also requires launching Firefox with the 
`--remote-debugging-port` command line argument.

Other browsers: Chrome is currently implementing 
https://github.com/GoogleChromeLabs/chromium-bidi 

web-platform-tests: 
https://github.com/web-platform-tests/wpt/tree/master/webdriver/tests/bidi

Additional gecko-specific web-platform-tests: 
https://searchfox.org/mozilla-central/source/testing/web-platform/mozilla/tests/webdriver/bidi

Discussion: https://chat.mozilla.org/#/room/#webdriver:mozilla.org

Details:

WebDriver-BiDi aims to provide a cross-browser protocol for browser 
automation 
that meets the requirements of modern web application testing tools. 
Compared 
to the existing W3C WebDriver specification, it provides bidirectional 
communication, making it better fit to test highly asynchronous 
applications.
It also aims to replace custom and proprietary protocols which are currently
 used by modern test tools such as Puppeteer. 

Read more details about WebDriver-BiDi in the initial Intent to Prototype 
at: 
https://groups.google.com/a/mozilla.org/g/dev-platform/c/kASQnIcU9Nc/m/v77WY5siBwAJ
 


Our current support for WebDriver-BiDi is a partial implementation of the 
specification, which includes the following commands:
- session.status
- session.new 
- session.subscribe
- session.unsubscribe
- browsingContext.close
- browsingContext.create
- browsingContext.getTree
- browsingContext.navigate

As well as the following events:
- log.entryAdded
- browsingContext.contextCreated

Although we don't implement the full specification yet, the current set of 
commands and events matches the requirements from Selenium to start using 
WebDriver-BiDi for Firefox instead of our partial CDP implementation. 

A security review focused on WebDriver-BiDi was done in April 2022, you can
read more at https://bugzilla.mozilla.org/show_bug.cgi?id=1753997. 
You can also follow the project on the wiki page:
https://wiki.mozilla.org/WebDriver/RemoteProtocol/WebDriver_BiDi.  

-- 
You received this message because you are subscribed to the Google Groups 
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/5a7281e7-f4a0-4a01-a788-08e844d959d3n%40mozilla.org.

Reply via email to