Summary: remote-protocol provides a Firefox implementation of a subset of the Chrome DevTools Protocol (CDP) [1], specifically targeted at testing and automation use cases.

remote-protocol isn't a web-exposed feature so it doesn't fit into the standard exposure guidelines. However we're mentioning it here to ensure everyone is aware of our plans.

Libraries such as Puppeteer and Selenium 4 depend on CDP for implementing browser automation with an API and featureset that isn't possible using standardised WebDriver. These libraries have either been Chrome-only or shipped a reduced featureset with Firefox, making it harder for web authors to test their sites against Gecko.

In order to address this issue we have been shipping support for a subset of CDP in Nightly Firefox for several releases under the name "remote-protocol". It is the basis for the current Firefox support in Puppeteer, and some Selenium 4 clients use it for preliminary Firefox support.

We now want the remote-protocol support to ride the trains so that users may test against stable Firefox. This is important, despite the fact the implementation remains incomplete, because for web-app testing Nightly is not a viable replacement for beta and stable due to the different features enabled on each channel.

Note that activating the remote-protocol server requires a specific command line flag, so for the majority of Firefox users this has no impact (this is identical to the way the existing marionette server works).

CDP is not part of any web standard, and is not exposed to content. In the long term we believe that the testing and automation use case should be fully served by cross-browser standard features; for this reason we have been working on webdriver-bidi [2], which will provide a standardised replacement for this feature. However with automated test tools increasingly using CDP instead of, or in addition to, WebDriver, we need to meet users where they are while the standard matures.

More details of the current state of the test automation landscape, and details of how to use the CDP support are in our hacks posts [3], [4].

Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1606604
Standard: N/A but will eventually be replaced by [2]
Platform coverage: All
Preference: Behind a command line flag: --remote-debugging-port
DevTools bug: N/A
Other browsers: Blink-only. Other vendors are participating in the WebDriver-BiDi standard.
web-platform-tests: N/A

[1] https://chromedevtools.github.io/devtools-protocol/
[2] https://w3c.github.io/webdriver-bidi/
[3] https://hacks.mozilla.org/2020/12/cross-browser-testing-part-1-web-app-testing-today/ [4] https://hacks.mozilla.org/2021/01/improving-cross-browser-testing-part-2-new-automation-features-in-firefox-nightly/
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to