Open AtofStryker opened 2 months ago
This has been spiked into in BIDI_AUTOMATION_CLIENT_EXTENSION, which cuts over the methods possible in the web extension (cookies, screenshots, resetting between specs, etc) all on commit https://github.com/cypress-io/cypress/commit/7f2c0123213d328096580e7a776d62515622d7dd. Most the failures I can see are related to resourceType
being missing, but right now there is too much noise in the CI run to see the failure gap between this commit and the base https://github.com/cypress-io/cypress/issues/30220. The firefox driver tests look to be hanging, so there might be some bugs on this commit, but otherwise system tests do not have a lot of failures and it looks like it will be in a good spot to develop once resourceType is supported. It is also worth noting that we cannot eliminate the web extension completely because browsingContext.downloadWillBegin
is not supported yet (or at least webdriver errors when I try to subscribe to this event stating it doesn't exist) and no method for listening on download status is available, i.e. no equivalent to CDP's Page.downloadProgress
, which we would need to remove the download behavior from the extension. We also need the extension for tab styling, etc, but this is outside the realm of automation.
What would you like?
I would like to replace the most possible amount of web extension apis handled by
@packages/extension
in Firefox with the WebDriver Bidi automation client(s) created in #30220Why is this needed?
Over time, the use of an unsigned web extension is likely going to be removed from Firefox (see bugzilla thread). With the introduction of BiDi, Cypress can now leverage the methods introduced in the specification to replace much of the use of the web extension.
Other
This should replace most of the methods (in red) outlined in the State of Automation spreadsheet except the downloads browser API methods (possibly).