WebDriver/RemoteProtocol: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Adding link to the new isfirefoxpuppeteerready dashboard and the milestone page)
(→‎FAQ: Add status of CDP implementation)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The Firefox '''Remote Protocol''' is a low-level debugging interface based on the [https://chromedevtools.github.io/devtools-protocol/tot/ CDP protocol].  With it, you can inspect the state and control execution of documents running in web content, instrument Gecko in interesting ways, simulate user interaction for automation purposes, and debug JavaScript execution.
The Firefox '''Remote Protocol''' is a low-level debugging interface. With it, you can inspect the state and control execution of documents running in web content, instrument Gecko in interesting ways, simulate user interaction for automation purposes, and debug JavaScript execution. Our implementation is currently based on the [https://chromedevtools.github.io/devtools-protocol/tot/ CDP protocol] and we're exploring future possibilities for a standard bidirectional protocol in the form of [https://github.com/w3c/webdriver-bidi/ WebDriver Bidi].


== Contributing ==
== Contributing ==
Line 7: Line 7:
* [[Remote/Developer Resources]]
* [[Remote/Developer Resources]]


== For client users (Puppeteer, Playwright, etc.) ==
== For client users (Puppeteer, Playwright, etc.) and client authors ==


We welcome early feedback during the beta stage of development. If you would like to try this out with your favorite browser automation library, you should [[Nightly|download Firefox Nightly]]. Feel free to ask questions and file bugs - see [[#Communication| Communication ]], below.  
We welcome feedback during this early stage of development.  
 
If you would like to try this out with your favorite browser automation library, you can download any recent version of Firefox. Feel free to ask questions and file bugs - see [[#Communication| Communication ]], below.  
 
Do you have an automation project or end-to-end test suite that depends on Chrome DevTools Protocol, either directly or though a client library like Puppeteer or Playwright?
 
We'd love to learn about the API surface that you use the most:
* Send us your [[Remote/Logging|protocol-level logs]] of your code/tests running against Chrome or Firefox
* Point us to any open-source code you have
 
Reach out to us on [https://riot.im/app/#/room/#remote-protocol:mozilla.org #remote-protocol] on [[Matrix]] or you can tweet [https://twitter.com/FirefoxDevTools @FirefoxDevTools]


=== FAQ ===
=== FAQ ===


; Can I use Puppeteer with Firefox?
; Can I use Puppeteer with Firefox?
: puppeteer and puppeteer-core are able to launch Firefox Nightly as of v2.1.0. This is part of a gradual transition away from puppeteer-firefox. Check the [https://puppeteer.github.io/ispuppeteerfirefoxready/ IsFirefoxPuppeteerReady dashboard] to see the overall status, and our [[Remote/Milestones#All_MVP_Bugs|Milestone overview]] for the current status.
: puppeteer and puppeteer-core are able to launch Firefox as of v2.1.0. Since Firefox 86 also beta and release versions are supported. This is part of a gradual transition away from puppeteer-firefox. Check the [https://puppeteer.github.io/ispuppeteerfirefoxready/ IsFirefoxPuppeteerReady dashboard] to see the overall status, and our [[Remote/Milestones#All_MVP_Bugs|Milestone overview]] for the current status.
; What is the difference between puppeteer and puppeteer-firefox?
; What is the difference between puppeteer and puppeteer-firefox?
: puppeteer-firefox is an experimental package from Google. It communicates solely with an outdated Firefox fork and is no longer maintained. It is not compatible with official Firefox releases.
: puppeteer-firefox is an experimental package from Google. It communicates solely with an outdated Firefox fork and is no longer maintained. It is not compatible with official Firefox releases.
; Can I use Playwright with Firefox?
; Can I use Playwright with Firefox?
: Playwright communicates with a different Firefox fork, similarly to puppeteer-firefox. The Firefox binary downloaded when installing Playwright is maintained by the Microsoft Playwright team, not Mozilla. In the future, Playwright should be able to interact with official Firefox binaries along the same lines as Puppeteer.
: Playwright communicates with a different Firefox fork, similarly to the deprecated puppeteer-firefox. The Firefox binary downloaded when installing Playwright is maintained by the Microsoft Playwright team, not Mozilla. In the future, Playwright should be able to interact with official Firefox binaries along the same lines as Puppeteer.
 
; Where can I see the current status of the CDP support?
== Meetings ==
: We are keeping the following [https://docs.google.com/spreadsheets/d/e/2PACX-1vRqKh563C0b0pnJruf85REpviTERnEoNEITEH3v9RvSCpkLzu9vw8c8_PAIgJoUpnUviVHV93u4V8V_/pubhtml?gid=108099026&single=true Google spreadsheet] up-to-date whenever a new API is getting added. It's important to note that our implementation of CDP will remain partial, and no further APIs might be added.
 
; Is WebDriver support going away?
The team meets most '''Fridays at 15:00 GMT''' (when [https://lists.mozilla.org/listinfo/dev-remote announced on the mailing list]) . Meeting agendas are posted to the [[#Communication|mailing list]] in advance and minutes are [[Remote/Meetings|archived]] on this wiki.
: No.
 
; Are you reducing support to only JavaScript-based tools?
See [[Remote/Meetings]] for the list of past and upcoming meetings as well as joining instructions.
: No. This work does not impact any existing or potential language bindings from other clients.


== Communication ==
== Communication ==
Line 30: Line 40:
; [[Remote/News|Project News]]
; [[Remote/News|Project News]]
; Mailing list
; Mailing list
: [mailto:dev-remote@lists.mozilla.org dev-remote@lists.mozilla.org] ([https://lists.mozilla.org/listinfo/dev-remote subscribe], [https://lists.mozilla.org/pipermail/dev-remote/ archive])
: [http://mailto:dev-webdriver@mozilla.org dev-webdriver@mozilla.org] ([https://groups.google.com/a/mozilla.org/g/dev-webdriver subscribe])
; Real-time chat
; Real-time chat
: [https://riot.im/app/#/room/#remote-protocol:mozilla.org #remote-protocol] on [[Matrix]]
: [https://riot.im/app/#/room/#remote-protocol:mozilla.org #remote-protocol] on [[Matrix]]
; Bug tracking
; Bug tracking
: [https://bugzilla.mozilla.org/describecomponents.cgi?product=Remote%20Protocol <code>Remote Protocol</code>] in Bugzilla
: [https://bugzilla.mozilla.org/describecomponents.cgi?product=Remote%20Protocol <code>Remote Protocol</code>] in Bugzilla
: [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=runnamed&namedcmd=Remote%20Agent&list_id=14652373 All ze boogs]
: [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Remote%20Protocol&list_id=15478104&resolution=--- All ze boogs]
: [[Remote/Milestones|Milestones]]
: [[Remote/Milestones|Milestones]]
== Staff ==
Our team is composed of these fine individuals:
{| class="wikitable"
|-
! Name !! IRC nickname !! Location !! Timezone !! Title
|-
| [https://hskupin.info/ Henrik Skupin] || whimboo || Germany || CET/CEST || Engineer
|-
| Maja Frydrychowicz || maja_zf || Montreal || EST/EDT || Engineer
|-
| Harald Kirschner || digitarald || California || PST/PDT || Product Manager
|-
| Marco Mucci || mmucci || Toronto || EST/EDT || Eng Project Manager
|}

Latest revision as of 16:28, 8 June 2021

The Firefox Remote Protocol is a low-level debugging interface. With it, you can inspect the state and control execution of documents running in web content, instrument Gecko in interesting ways, simulate user interaction for automation purposes, and debug JavaScript execution. Our implementation is currently based on the CDP protocol and we're exploring future possibilities for a standard bidirectional protocol in the form of WebDriver Bidi.

Contributing

For client users (Puppeteer, Playwright, etc.) and client authors

We welcome feedback during this early stage of development.

If you would like to try this out with your favorite browser automation library, you can download any recent version of Firefox. Feel free to ask questions and file bugs - see Communication , below.

Do you have an automation project or end-to-end test suite that depends on Chrome DevTools Protocol, either directly or though a client library like Puppeteer or Playwright?

We'd love to learn about the API surface that you use the most:

  • Send us your protocol-level logs of your code/tests running against Chrome or Firefox
  • Point us to any open-source code you have

Reach out to us on #remote-protocol on Matrix or you can tweet @FirefoxDevTools

FAQ

Can I use Puppeteer with Firefox?
puppeteer and puppeteer-core are able to launch Firefox as of v2.1.0. Since Firefox 86 also beta and release versions are supported. This is part of a gradual transition away from puppeteer-firefox. Check the IsFirefoxPuppeteerReady dashboard to see the overall status, and our Milestone overview for the current status.
What is the difference between puppeteer and puppeteer-firefox?
puppeteer-firefox is an experimental package from Google. It communicates solely with an outdated Firefox fork and is no longer maintained. It is not compatible with official Firefox releases.
Can I use Playwright with Firefox?
Playwright communicates with a different Firefox fork, similarly to the deprecated puppeteer-firefox. The Firefox binary downloaded when installing Playwright is maintained by the Microsoft Playwright team, not Mozilla. In the future, Playwright should be able to interact with official Firefox binaries along the same lines as Puppeteer.
Where can I see the current status of the CDP support?
We are keeping the following Google spreadsheet up-to-date whenever a new API is getting added. It's important to note that our implementation of CDP will remain partial, and no further APIs might be added.
Is WebDriver support going away?
No.
Are you reducing support to only JavaScript-based tools?
No. This work does not impact any existing or potential language bindings from other clients.

Communication

Project News
Mailing list
dev-webdriver@mozilla.org (subscribe)
Real-time chat
#remote-protocol on Matrix
Bug tracking
Remote Protocol in Bugzilla
All ze boogs
Milestones