Source code

Revision control

Copy as Markdown

Other Tools

# Remote Protocols
Firefox supports several remote protocols, which allow to inspect and control
the browser, usually for automation purposes:
- {ref}`marionette-header`
- {ref}`webdriver-bidi-header`
## Common documentation
The following documentation pages apply to all remote protocols
```{toctree}
:maxdepth: 1
Building.md
Debugging.md
Prefs.md
Testing.md
CodeStyle.md
Security.md
PuppeteerVendor.md
```
## Protocols
(marionette-header)=
### Marionette
Marionette is used both by internal tools and testing solutions, but also by
geckodriver to implement the [WebDriver (HTTP) specification]. The documentation
for Marionette can be found under [testing/marionette].
(webdriver-bidi-header)=
### WebDriver BiDi
[The WebDriver BiDi specification](https://w3c.github.io/webdriver-bidi)
extends WebDriver HTTP to add bidirectional communication.
```{toctree}
:maxdepth: 1
webdriver-bidi/Extensions.md
```
## Architecture
### Message Handler
The documentation for the framework used to build WebDriver BiDi modules can be
found at [remote/messagehandler].
## Bugs
Bugs are tracked under the [Remote Protocol product].
## Communication
See [Communication] on [our project wiki].
[our project wiki]: https://wiki.mozilla.org/Remote
[remote/messagehandler]: messagehandler/
[testing/marionette]: /testing/marionette
[webdriver (http) specification]: https://w3c.github.io/webdriver/