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

Cypress provided browser binaries #19241

Open
mjhenkes opened this issue Dec 3, 2021 · 5 comments
Open

Cypress provided browser binaries #19241

mjhenkes opened this issue Dec 3, 2021 · 5 comments
Assignees
Labels
Epic Requires breaking up into smaller issues type: feature New feature that does not currently exist

Comments

@mjhenkes
Copy link
Member

mjhenkes commented Dec 3, 2021

What would you like?

Cypress consumers install browsers today by separately downloading and installing browsers supported by Cypress either to their local machines or CI. With this project we intend to provide consumers with the ability to download a browser binary for testing through Cypress config. This is similar to, though not the same as, how playwright provides their browser binaries.

  • Consumers can specify the browsers to download through config.
  • Consumers can specify one of a browser.
  • Browsers should be downloaded on demand.
  • Browsers can be pre-installed for CI or docker containers.
  • Must be an extendable pattern to support more than one browser type (chromium, firefox, webkit)

For the initial release of this feature we will only support the chromium browser.

Why is this needed?

This is a prerequisite step for providing webkit support since we will have to distribute webkit binaries to enable support.

Other

No response

@mjhenkes mjhenkes added the Epic Requires breaking up into smaller issues label Dec 3, 2021
@mjhenkes mjhenkes self-assigned this Dec 3, 2021
@jennifer-shehane jennifer-shehane added the type: feature New feature that does not currently exist label Dec 4, 2021
@joshhansen
Copy link

I'd like to request if possible that the browser binaries be statically linked so as to avoid the dependency issues that affect playwright. Or that they be bundled with all dependencies. Playwright's model targets a specific version of Linux (Ubuntu 20.04 I think) that is very limiting for people on other Linux distributions.

@weyert
Copy link

weyert commented Dec 25, 2021

I would suggest to just leverage the Playwright packages. I have Playwright Webkit packages working fine on macOs and Linux for months now. I think it's most convenient way and avoids duplicate efforts

@joshhansen
Copy link

I've been unable to use Playwright's webkit distribution on Fedora 35 due to lack of specific versions of various dependencies, see this Playwright issue for similar problems.

Relying on dynamic linking to specific versions of frequently updated libraries like libicuuc makes the binary very fragile. From what I can tell, there never was a distribution of version 66 of that library on Fedora, yet that's what Playwright's webkit is depending on, and subbing in neighboring versions doesn't work.

$ ~/.cache/ms-playwright/webkit-1578/pw_run.sh 
/home/josh/.cache/ms-playwright/webkit-1578/minibrowser-gtk/bin/MiniBrowser: error while loading shared libraries: libicuuc.so.66: cannot open shared object file: No such file or directory

I'd like to see Cypress avoid a similar fate in whatever it provides, either by static linking, or a container-based distribution, or enough distribution-specific builds to make this a non-issue.

@michalbudzynski
Copy link

whats happen with this task?
what is the scope of time for making the functionality available?

@jennifer-shehane
Copy link
Member

We've deprioritized this work over other initiatives.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Requires breaking up into smaller issues type: feature New feature that does not currently exist
Projects
None yet
Development

No branches or pull requests

5 participants