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 chromiuminstalls 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_PATHisn'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
chromeisn't found, then it looks forheadless_shell- and if that's found, then it setsCHROMIUM_EXECUTABLE_PATHto that.