misc: replace marionette-client with geckodriver as b2g marionette client is no longer supported #30250
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Additional details
As a precursor to supporting WebDriver BiDi, Cypress needs to replace the older marionette-client with geckodriver. This is the current recommendation from the Mozilla team as
marionette-client
is no longer supported (see Cypress migration bugzilla ticket).Currently, the responsibilities of the current
geckodriver
implementation and the oldermarionette-client
:WebDriver Classic
session.WebDriver Classic
to navigate the browser. This will be replaced by BiDi in the future.Marionette
to install the Cypress Web Extension.This is outlined in the added
README
in this PR as well as some other useful information. This information will be updated as we implementBiDi
.It is worth noting that we patch the
geckodriver
package to coincide with our debug logs in order to not print extraneous messages to the console that could disrupt end user experience as well as impact our system tests. We also need to patch top-level awaits to correctly build the app.To consume
GeckoDriver
, this code installs thegeckodriver
package, a lightweight wrapper around the geckodriver binary, to connect to the Firefox browser.geckodriver
will be downloaded automatically to the user'stmp
directory if not already downloaded, and will be started and managed by the Cypress server.Steps to test
Unit tests have been updated to reflect the replaced client, as well as tests added for our
geckodriver
wrapper.The
system-tests
andintegration
tests serve as a regression suite to help guarantee this change works.Manual testing should also be completed on
linux
,mac
, andwindows
in open/run mode permutations to verify the code and client changes work universally. The app team will be participating in a small bughunt to identify issues we may have not already found.How has the user experience changed?
Ideally, this change should NOT impact the end user. This is an internal swap of a client used to automate the browser and should not affect the end user in any way.
PR Tasks
cypress-documentation
?type definitions
?