Support chrome variants in fetcher
Since I last wrote the fetcher, chrome added new distributions for us to use instead of the good old chromium.
We can use chrome-driver, chrome-headless-shell and chrome. They are all available on https://googlechromelabs.github.io/chrome-for-testing/ (bucket https://storage.googleapis.com/chrome-for-testing-public).
This drastically reduces the maintenance burden of tracking which chromium revision has an actual build and also adds support for linux aarch64 (fixes #238).
I will work on it this november, it should be fairly easy to add.
Update after a couple hours, it looks like since puppeteer switched to chrome-for-testing the chromium builds are all over the place and finding revision that was available on all platforms is hard. They also shutdown the proxy that people were using to get the revisions (https://omahaproxy.appspot.com/all.json?channel=${channel}&os=linux) Links for references: -https://chromiumdash.appspot.com/commits -https://github.com/puppeteer/puppeteer/blob/bc93722c244ded3c3c8d67fd40ad744f19e86ba7/tools/check_availability.js -https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Mac/ -https://source.chromium.org/chromium/chromium/src
Hi,
From what I understand:
chrome-for-testing-public: Official, versioned Chrome for Testing builds (Stable/Beta/Dev/Canary) with deterministic URLs/JSON and matching ChromeDriver; meant for CI/automation and reproducible runs.chromium-browser-snapshots: Rolling Chromium snapshots indexed by commit position (not Chrome versions); best for bisecting/debugging against specific commits.
And since this library is mainly for CI, WebCrawler and automation, chrome-for-testing-public is more appropriate.
You can even add an option to use chrome-headless-shell instead to be more performant at a tradeoff of some fidelity (not so clear to me as I could not find much more explanations)
I linked all the relevant info, for reference:
- https://developer.chrome.com/blog/chrome-for-testing
- https://developer.chrome.com/blog/chrome-headless-shell
- https://github.com/GoogleChromeLabs/chrome-for-testing?tab=readme-ov-file#json-api-endpoints
- https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json
- https://googlechromelabs.github.io/chrome-for-testing/