Update compile script to support new headless chromium config #4
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.
Playwright 1.49.0+ has rolled in Chrome 112's changes to their headless browser.
Chrome blog: https://developer.chrome.com/blog/chrome-headless-shell
Related playwright issue/explainer: microsoft/playwright#33566
What this actually means is that
playwright install chromium
installs both full Chromium, as well as Chromium Headless Shell.At the time of writing, that comes out to ~199mb. I only first noticed this after upgrading playwright because Heroku was rejecting the build for exceeding the 500mb slug limit.
After digging around, instead of
playwright install chromium
, we should now be usingplaywright install chromium-headless-shell
(orplaywright install chromium --only-shell
, appears to be the same thing) if we don't want full Chromium. This'll install only the headless version, ~77mb at the time of writing.Unfortunately it's not as simple as just doing that though. The executable for the headless Chromium isn't called just
chrome
, it's calledheadless_shell
- which means thatCHROMIUM_EXECUTABLE_PATH
isn't automatically set by this buildpack anymore if you only need the headless version installed.All this PR does is update the compile script; if
chrome
isn't found, then it looks forheadless_shell
- and if that's found, then it setsCHROMIUM_EXECUTABLE_PATH
to that.