Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Current Limitations blocking Cypress' adoption of Webdriver BiDi For Firefox #30447

Open
3 tasks
AtofStryker opened this issue Oct 23, 2024 · 1 comment
Open
3 tasks

Comments

@AtofStryker
Copy link
Contributor

AtofStryker commented Oct 23, 2024

Cypress has spent a few weeks on prepping our firefox automation to cut over from CDP to BiDi. There was some precursor work to do this, such as moving to geckodriver and webdriver in order to have access to a BiDi client on modern automation infrastructure.

Since doing this, we have spiked into cutting over to BiDi, which more details can be seen in the spike issue comment #30351 (comment).

From what I can see, there are a few blockers for us right now from moving over to BiDi from CDP. This is also being tracked on Firefox's side in https://bugzilla.mozilla.org/show_bug.cgi?id=1604723.

Priority issues for Cypress in the Bidi Context is cuirrently captured in Webdriver Bidi Roadmap Planning (Cypress Copy). The Cypress team is currently going through issues to prioritize support that we want/need. Original document is here and will hopefully merge our priorities upstream soon.

Our mapping of CDP/web extension methods to BiDi methods is currently captured in the
Cypress State of Automation document.

The below checklist is representative from the above link to roadmap planning, reflect P2 issues and under (p1 is more severe than p2)

  • P1: Add Support for resourceType to network events. Issue tracked in https://bugzilla.mozilla.org/show_bug.cgi?id=1904892 and mentioned in https://bugzilla.mozilla.org/show_bug.cgi?id=1604723. This is critical to Cypress to support cookie management, proxy logging, proxy correlation, and the cy.intercept() API.
  • P3: File download behavior. The W3C API has browsingContext.downloadWillBegin, but this doesn't look to be currently supported as a "no event exist" error is thrown. Cypress also would need something like Page.downloadComplete in CDP to fully move this out of our web extension. We currently work around this in our web extension so it isn't a blocker to base adoption.
  • P2: Be able to load web extensions and access background page. This is currently supported through classic webdriver through firefox specific capabilities. We just want to make sure this is supported in the future if classic webdriver is removed, but isn't a blocker to base adoption.
@christian-bromann
Copy link

@AtofStryker this is really exciting to see Cypress adopting WebDriver Bidi primitives. If there is anything I can help with from the WebdriverIO project, e.g. any issues you encounter on the webdriver or geckodriver package, please reach out!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants