-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(installer): retain browsers installed via Playwrigth CLI (#5904)
Browser registry is responsible for 3 things: 1. Remove downloaded browsers if there are no packages that refer to them 2. Install default browsers needed for the current package 3. Install browsers on-demand when used through Playwright CLI Currently, registry relies on a single "download" field in `browsers.json` to carry both (1) and (2). However, browsers in (3) are marked as `download: false` so that they aren't installed automatically in (2), so auto-remove procedure in (1) removes them on subsequent installation. One possible approach to fix this would be modifying package's `browsers.json` to change `download: false` to `true` when browsers are installed with Playwright CLI. This approach was explored here: bc04a51 We decided against this since we have a history of issues related to package modifications after NPM installation. This breaks all sorts of yarn/npm caching mechanisms. Instead, this patch is a two-step refactor: - remove the "download" field in `browsers.json`. Now, all registries (including old ones from previously-released versions) will retain any browsers that are mentioned in the `browsers.json`. - add a new flag "installByDefault", that is **only used** for default installation. With this change, the registry tasks are done like this: - (1) auto-removal: if browser has a back reference, it is retained, otherwise it is removed from registry - (2) default installation: use only `installByDefault` to carry default installations - (3) CLI installation: simply installs browsers. Since we retain everythings that's referenced in (1), browsers aren't removed. Fixes #5902
- Loading branch information
1 parent
6dd4d75
commit 2064d27
Showing
4 changed files
with
31 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters