WebDriver: Difference between revisions

2,005 bytes added ,  26 February 2021
Reorganization of WebDriver component pages
(→‎Communication: Fixed Bugzilla links for Marionette and geckodriver)
(Reorganization of WebDriver component pages)
Line 7: Line 7:
'''This is the project page for the WebDriver project at Mozilla.'''
'''This is the project page for the WebDriver project at Mozilla.'''
If you’re looking for [https://developer.mozilla.org/en-US/docs/Web/WebDriver information about WebDriver itself you will find that on MDN].
If you’re looking for [https://developer.mozilla.org/en-US/docs/Web/WebDriver information about WebDriver itself you will find that on MDN].
== Components ==
The implementation of WebDriver in Firefox consists of different layers with each of them handled by it's own component.
=== Marionette ===
[[WebDriver/Marionette|Marionette]] is a remote protocol that lets out-of-process programs communicate with, instrument, and control Gecko-based browsers. It implements the [https://w3c.github.io/webdriver/ WebDriver specification], which is then made available via a custom socket protocol to geckodriver.
It provides interfaces for interacting with both the internal JavaScript runtime and UI elements of Gecko-based browsers, such as Firefox and Fenix. It can control both the content and chrome- documents, giving a high level of control and ability to emulate user interaction.
=== geckodriver ===
[[WebDriver/geckodriver|geckodriver]] is a proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers.
This program provides the HTTP API described by the [https://w3c.github.io/webdriver/ WebDriver specification] to communicate with Gecko browsers. It translates calls into the [[WebDriver/Marionette|Marionette]] compatible remote protocol by acting as a proxy between the local- and remote ends.
=== Remote Protocol ===
The Firefox [[WebDriver/RemoteProtocol|Remote Protocol]] is a low-level debugging interface you can use to inspect the state and control execution of documents running in web content, instrument the browser in interesting ways, simulate user interaction for automation purposes, and for subscribing to events in the browser such as network- or console logs.
It's primary purpose is the implementation of the [https://w3c.github.io/webdriver-bidi/ WebDriver BiDi specification]. But it also complements the existing Firefox Developer Tools [https://firefox-source-docs.mozilla.org/devtools/backend/protocol.html#remote-debugging-protocol Remote Debugging Protocol (RDP)] by implementing a subset of the [https://chromedevtools.github.io/devtools-protocol/ Chrome DevTools Protocol (CDP)].


== Communication ==
== Communication ==
Line 22: Line 40:


== Staff ==
== Staff ==
* Jan Odvarko (honza), manager
* Jan Odvarko (honza), manager
* [https://www.hskupin.info/ Henrik Skupin] (whimboo), engineer
* [https://www.hskupin.info/ Henrik Skupin] (whimboo), engineer
canmove, Confirmed users, Bureaucrats and Sysops emeriti
4,714

edits