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
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].
[remote protocol product]: https://bugzilla.mozilla.org/describecomponents.cgi?product=Remote%20Protocol
[remote/messagehandler]: messagehandler/
[testing/marionette]: /testing/marionette