| Crates.io | firefox_remote |
| lib.rs | firefox_remote |
| version | |
| created_at | 2026-01-14 22:14:54.674203+00 |
| updated_at | 2026-01-14 22:14:54.674203+00 |
| description | Library for interacting with a Firefox instance with the Marionette protocol |
| homepage | |
| repository | https://codeberg.org/eze-works/firefox_remote |
| max_upload_size | |
| id | 2043989 |
| size | 0 |
A high-level API for controlling Firefox over its Marionette protocol.
This crate started as an experiment to see how easy it would be to control firefox directly without using a webdriver proxy (e.g. geckodriver). Turns out it is quite straightforward, so here we are :)
This isn't a super popular protocol to implement, and the docs are not kept up to date. So the best reference for the supported operations is the source code.
✅ = Implemented
❌ = Not planned
[] = TODO
Marionette:AcceptConnectionsMarionette:GetContextMarionette:GetScreenOrientationMarionette:GetWindowTypeMarionette:QuitSession struct to quit.Marionette:RegisterChromeHandlerMarionette:UnregisterChromeHandlerMarionette:SetContextMarionette:SetScreenOrientationAddon:InstallAddon:UninstallL10n:LocalizePropertyreftest:setupreftest:runreftest:teardownWebDriver:AcceptAlertWebDriver:AddCookieWebDriver:BackWebDriver:CloseChromeWindowWebDriver:CloseWindowWebDriver:DeleteAllCookiesWebDriver:DeleteCookieWebDriver:DeleteSessionWebDriver:DismissAlertWebDriver:ElementClearWebDriver:ElementClickWebDriver:ElementSendKeysWebDriver:ExecuteAsyncScriptWebDriver:ExecuteScriptWebDriver:FindElementWebDriver:FindElementFromShadowRootWebDriver:FindElementsWebDriver:FindElementsFromShadowRootWebDriver:ForwardWebDriver:FullscreenWindowWebDriver:GetActiveElementWebDriver:GetAlertTextWebDriver:GetCapabilitiesWebDriver:GetComputedLabelWebDriver:GetComputedRoleWebDriver:GetCookiesWebDriver:GetCurrentURLWebDriver:GetElementAttributeWebDriver:GetElementCSSValueWebDriver:GetElementPropertyWebDriver:GetElementRectWebDriver:GetElementTagNameWebDriver:GetElementTextWebDriver:GetPageSourceWebDriver:GetShadowRootWebDriver:GetTimeoutsWebDriver:GetTitleWebDriver:GetWindowHandleWebDriver:GetWindowHandlesWebDriver:GetWindowRectWebDriver:IsElementDisplayedWebDriver:IsElementEnabledWebDriver:IsElementSelectedWebDriver:MinimizeWindowWebDriver:MaximizeWindowWebDriver:NavigateWebDriver:NewSessionWebDriver:NewWindowWebDriver:PerformActionsWebDriver:PrintWebDriver:RefreshWebDriver:ReleaseActionsWebDriver:SendAlertTextWebDriver:SetPermissionWebDriver:SetTimeoutsWebDriver:SetWindowRectWebDriver:SwitchToFrameWebDriver:SwitchToParentFrameWebDriver:SwitchToWindowWebDriver:TakeScreenshotGPC:GetGlobalPrivacyControlGPC:SetGlobalPrivacyControlWebAuthn:AddVirtualAuthenticatorWebAuthn:RemoveVirtualAuthenticatorWebAuthn:AddCredentialWebAuthn:GetCredentialsWebAuthn:RemoveCredentialWebAuthn:RemoveAllCredentialsWebAuthn:SetUserVerified