firefox_remote

Crates.iofirefox_remote
lib.rsfirefox_remote
version
created_at2026-01-14 22:14:54.674203+00
updated_at2026-01-14 22:14:54.674203+00
descriptionLibrary for interacting with a Firefox instance with the Marionette protocol
homepage
repositoryhttps://codeberg.org/eze-works/firefox_remote
max_upload_size
id2043989
size0
(eze-works)

documentation

README

firefox-remote

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 :)

Protocol coverage

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:AcceptConnections
    Firefox starts accepting connections by default.
  • Marionette:GetContext
    This crate does not support the "chrome" context.
  • Marionette:GetScreenOrientation
    This operation is only supported on Android.
  • Marionette:GetWindowType
    Does not seem useful.
  • Marionette:Quit
    Drop the Session struct to quit.
  • Marionette:RegisterChromeHandler
    This crate does not support the "chrome" context.
  • Marionette:UnregisterChromeHandler
    This crate does not support the "chrome" context.
  • Marionette:SetContext
    This crate does not support the "chrome" context.
  • Marionette:SetScreenOrientation
    This operation is only supported on Android.
  • [] Addon:Install
  • [] Addon:Uninstall
  • [] L10n:LocalizeProperty
  • reftest:setup
  • reftest:run
  • reftest:teardown
  • WebDriver:AcceptAlert
  • WebDriver:AddCookie
  • WebDriver:Back
  • [] WebDriver:CloseChromeWindow
  • WebDriver:CloseWindow
  • WebDriver:DeleteAllCookies
  • WebDriver:DeleteCookie
  • WebDriver:DeleteSession
  • WebDriver:DismissAlert
  • WebDriver:ElementClear
  • WebDriver:ElementClick
  • [] WebDriver:ElementSendKeys
  • WebDriver:ExecuteAsyncScript
  • WebDriver:ExecuteScript
  • WebDriver:FindElement
  • WebDriver:FindElementFromShadowRoot
  • WebDriver:FindElements
  • WebDriver:FindElementsFromShadowRoot
  • WebDriver:Forward
  • WebDriver:FullscreenWindow
  • WebDriver:GetActiveElement
  • WebDriver:GetAlertText
  • [] WebDriver:GetCapabilities
  • WebDriver:GetComputedLabel
  • WebDriver:GetComputedRole
  • WebDriver:GetCookies
  • WebDriver:GetCurrentURL
  • WebDriver:GetElementAttribute
  • WebDriver:GetElementCSSValue
  • [] WebDriver:GetElementProperty
  • WebDriver:GetElementRect
  • WebDriver:GetElementTagName
  • WebDriver:GetElementText
  • WebDriver:GetPageSource
  • WebDriver:GetShadowRoot
  • [] WebDriver:GetTimeouts
  • WebDriver:GetTitle
  • WebDriver:GetWindowHandle
  • WebDriver:GetWindowHandles
  • WebDriver:GetWindowRect
  • WebDriver:IsElementDisplayed
  • WebDriver:IsElementEnabled
  • WebDriver:IsElementSelected
  • WebDriver:MinimizeWindow
  • WebDriver:MaximizeWindow
  • WebDriver:Navigate
  • WebDriver:NewSession
  • WebDriver:NewWindow
  • [] WebDriver:PerformActions
  • WebDriver:Print
  • WebDriver:Refresh
  • [] WebDriver:ReleaseActions
  • [] WebDriver:SendAlertText
  • [] WebDriver:SetPermission
  • [] WebDriver:SetTimeouts
  • WebDriver:SetWindowRect
  • WebDriver:SwitchToFrame
  • WebDriver:SwitchToParentFrame
  • WebDriver:SwitchToWindow
  • WebDriver:TakeScreenshot
  • GPC:GetGlobalPrivacyControl
  • GPC:SetGlobalPrivacyControl
  • WebAuthn:AddVirtualAuthenticator
  • WebAuthn:RemoveVirtualAuthenticator
  • WebAuthn:AddCredential
  • WebAuthn:GetCredentials
  • WebAuthn:RemoveCredential
  • WebAuthn:RemoveAllCredentials
  • WebAuthn:SetUserVerified
Commit count: 9

cargo fmt