Reputation: 6542
Chrome websites offers only download for the latest version. However it is sometimes necessary to debug a web app against an older version of Chrome.
There are several third-party sites (as mentioned in https://stackoverflow.com/questions/33705280/how-to-download-an-old-version-of-chrome) that allows to download Chrome binaries but I don't want to download from those third-party for security reasons.
So the question is is there some way to download older versions of Chrome from a google managed server?
Upvotes: 45
Views: 182564
Reputation: 2270
None of these answers seemed to work for me, so I decided to tackle this issue once and for all.
You can visit https://old-chrome.deno.dev/ to download your desired version. Note that these are 'Chromium' builds, meaning that some proprietary functionality from Google is missing.
This is how it works behind the scenes:
https://versionhistory.googleapis.com/v1/chrome/platforms/<platform>/channels/stable/versions/all/releases
for a list of all versions, where you replace <platform>
with one of the platforms listed on https://versionhistory.googleapis.com/v1/chrome/platforms/https://chromiumdash.appspot.com/fetch_version?version=<your version>
and note the chromium_main_branch_position
.https://commondatastorage.googleapis.com/chromium-browser-snapshots/?delimiter=/&prefix=<platformDir>/&marker=<platformDir>/<branch_position>/
.
<platformDir>
is one of the directory names listed on https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html<branch_position>
is the position from step 2https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=<platformDir>/<commit id>/
<commit id>
is the working commit id.This works all the way to version 90, versions before that don't seem to have their commit ids listed on chromiumdash.appspot.com. Hopefully this solution keeps working for foreseeable future. But things seems to have been changed a lot in the past, so who knows.
Upvotes: 2
Reputation: 388
For any one stumbling on this looking for older RPM/DEBs stable Chrome packages, you can use the following official link format, I don't know what is the retention policy but it seems Chrome keeps roughly the last year or so worth of versions.
Replace [CHROME_VERSION] with the version you want, you can look for release versions in https://chromiumdash.appspot.com/releases
Make sure you set the top dropdown to Linux, the stable versions will be on the left. For example if you want an RPM package for version 127.0.6533.119 then you would use:
Upvotes: 0
Reputation: 6092
Use Ctrl+F to search this page for the latest version you're looking for that's in the operating system you need (eg. version 114
for Linux).
Once you've found the version and commit you want, scroll to the 5th column for its download position (not the position, which is the 4th column). Both position and download position are similar 7-digit numbers.
The download position should be all you need to programmatically grab the Chrome version you need. For example, the following step in a GitHub Actions workflow file will grab version 114 of Chromium for integrated testing:
- name: Get Chromium v114
uses: browser-actions/setup-chrome@latest
with:
chrome-version: 1135561 # Download position for a commit of Chrome v114
Upvotes: 1
Reputation: 31
Looks like you can now just go to:
https://chromiumdash.appspot.com/branches
...to find the links easily (via a redirect from https://omahaproxy.appspot.com/ which was the URL suggested in a previous post).
Upvotes: 2
Reputation: 353
I found this gist https://gist.github.com/pudquick/8cd029d0967ee6f5ee353ed5a967f33c, I forked it and added the targetversionprefix
param to the XML. And made it python3 compat. Download it. modify the mac OS version to your system's version and update the target_version_prefix
.
https://gist.github.com/ryfloyd/afc8d87947a520e6094fec4878051ea8
Running it python google_chrome_update_checker.py
and it will output the download link:
Upvotes: 1
Reputation: 559
You can use Update API used by Chrome to discover links to the latest 14 releases. The PowerShell code bellow prints the links for the version 115.0.
$ChromeVersion = '115'
$requestId = ([String][Guid]::NewGuid()).ToUpper()
$sessionId = ([String][Guid]::NewGuid()).ToUpper()
$xml = @"
<?xml version="1.0" encoding="UTF-8"?>
<request protocol="3.0" updater="Omaha" sessionid="{$sessionId}"
installsource="update3web-ondemand" requestid="{$requestId}">
<os platform="win" version="10.0" arch="x64" />
<app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="5.0.375"
ap="x64-stable-statsdef_0" lang="" brand="GCEB">
<updatecheck targetversionprefix="$ChromeVersion"/>
</app>
</request>
"@
$webRequest = @{
Method = 'Post'
Uri = 'https://tools.google.com/service/update2'
Headers = @{
'Content-Type' = 'application/x-www-form-urlencoded'
'X-Goog-Update-Interactivity' = 'fg'
}
Body = $Xml
}
$result = Invoke-WebRequest @webRequest -UseBasicParsing
$contentXml = [xml]$result.Content
$status = $contentXml.response.app.updatecheck.status
if ($status -eq 'ok') {
$package = $contentXml.response.app.updatecheck.manifest.packages.package
$urls = $contentXml.response.app.updatecheck.urls.url | ForEach-Object { $_.codebase + $package.name }
Write-Output "--- Chrome Windows 64-bit found. Hash=$($package.hash) Hash_sha256=$($package.hash_sha256)). ---"
Write-Output $urls
}
else {
Write-Output "Chrome not found (status: $status)"
}
For Windows 64-bit the links are the following:
You can find the detailed explanation of how it works here
Upvotes: 30
Reputation: 1233
My answer will be Linux specific. This is for actual chrome, not chromium.
I was able to get a past version by modifying the current stable version link with the version I wanted. For example, the current link is:
I want version 114.0.5735.198 so I changed the link above to this and it worked: https://dl.google.com/linux/deb/pool/main/g/google-chrome-stable/google-chrome-stable_114.0.5735.198-1_amd64.deb
I have no idea how many versions they keep in that folder, so this may not take you very far back and they could clear the old versions at any time.
I did use the reference @sebastien gave to the Chrome Release Blog to get my desired version number.
Upvotes: 5
Reputation: 254
If you are looking to do this programmatically for Chrome, @Andrzej Jakuszyk's answer is correct.
If you are looking to do this programmatically for Chromium (which the other answers show you how to do manually/unofficially) you can make use of several different official tools:
A. Get the tags with (this is actually very fast - only takes a couple of seconds to pull all of the tags):
git ls-remote --tags <repo>
https://chromium.googlesource.com/chromium
https://github.com/chromium/chromium.git
B. Then, get the base position
<reference-head>@{<position>}
https://omahaproxy.appspot.com/deps.json?version=<tag from git ls-remote>
git fetch
+ git log
(significantly slower method - can take 30+ minutes to parse) directly on the chromium source codegit fetch
) for the GitHub mirror - https://github.com/chromium/chromiumC. Once you've gotten the base position, you can use step 3 from @mmel/@Sebastion's answer to get the download link
Upvotes: 1
Reputation: 2033
@Sebastien is right.
But if you want to download Chromium without known any version
number, this page provides verison list to download:
https://vikyd.github.io/download-chromium-history-version/
Unofficial page, but official downlaod links inside. still safe.
Upvotes: 30
Reputation: 334
I was having some trouble with the accepted answer, but I found this list of official download links by version number:
Upvotes: 10
Reputation: 6542
Older version of Chrome are not publicly available but you can find and download the matching Chromium binaries from the Chromium build server.
To do so follow the procedure below (derived from Chromium wiki):
1/ Find the Full Version Number
You can lookup the full version number matching a release by searching in the Chrome Releases Blog
Example:
2/ Find the Branch Base Position
Use the "Version Information" tool to find a Branch Base Position for the Full Version number. To do that enter the Full Version Number and press lookup. If the version returns an empty Branch Base Position try increment the last component of the version until you get a Branch Base Version.
Example:
Looking up 69.0.3497.81
retrieves no Branch Base Position
But looking up 69.0.3497.82
retrieves Branch Base Position: 576753
3/ Download the content for Branch Base Position and platform
Then download the content from the url where you replaced your platform and Branch Base Position value. https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=[platform]/[Branch Base Position]/
Where [platform] is either "Win_x64", "Linux_x64" or "Mac"
Example:
for Chrome 69 on Linux https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/576753/
Upvotes: 72