Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Google Chrome MSIs are old and broken #778

Open
2 tasks done
aaronparker opened this issue Dec 5, 2024 · 2 comments
Open
2 tasks done

[Bug]: Google Chrome MSIs are old and broken #778

aaronparker opened this issue Dec 5, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@aaronparker
Copy link
Owner

aaronparker commented Dec 5, 2024

What happened?

MSIs provided by GoogleChrome when dowloaded via Save-EvergreenApp or the browser are old versions and fail to install correctly.

https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi
https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi
https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi
https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi
https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise_Arm64.msi
https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi

The URLs used when downloading from https://chromeenterprise.google/download/ have the following format, with the iid variable changing depending on the browser session:

https://dl.google.com/tag/s/appguid={8A69D345-D564-463C-AFF1-A69D9E530F96}&iid={22F1BBCC-DFD5-36D7-B10E-73937BDEC5F7}&lang=en&browser=5&usagestats=0&appname=Google%20Chrome&needsadmin=true&ap=x64-stable-statsdef_0&brand=GCOM/dl/chrome/install/googlechromestandaloneenterprise64.msi

For Evergreen we need to find a solution using one of the following:

  1. New evergreen URLs that provide access to the latest MSIs without requiring the URL structure above; or
  2. Determine how to generate a URL to enable download the correct MSI file

Version

2412.1685

What PowerShell edition/s are you running Evergreen on?

PowerShell Core, Windows PowerShell

Which operating system/s are you running Evergreen on?

Windows 10+, macOS

Have you reviewed the documentation?

Verbose output

Get-EvergreenApp -Name GoogleChrome -Verbose
VERBOSE: Function path: /Users/aaron/projects/evergreen/Evergreen/Apps/Get-GoogleChrome.ps1
VERBOSE: Function exists: /Users/aaron/projects/evergreen/Evergreen/Apps/Get-GoogleChrome.ps1.
VERBOSE: Dot sourcing: /Users/aaron/projects/evergreen/Evergreen/Apps/Get-GoogleChrome.ps1.
VERBOSE: Get-FunctionResource: read application resource strings from [/Users/aaron/projects/evergreen/Evergreen/Manifests/GoogleChrome.json]
VERBOSE: Calling: Get-GoogleChrome.
VERBOSE: Get-GoogleChrome: Channel: Extended.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://chromiumdash.appspot.com/fetch_releases?channel=Extended&platform=Windows&num=6&offset=0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Found version: 130.0.6723.152
VERBOSE: Get-GoogleChrome: Get release data for this channel.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/extended/versions/all/releases?filter=endtime=none.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Get short date from 12/03/2024 16:49:03.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: Stable.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://chromiumdash.appspot.com/fetch_releases?channel=Stable&platform=Windows&num=6&offset=0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Found version: 131.0.6778.109
VERBOSE: Get-GoogleChrome: Get release data for this channel.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions/all/releases?filter=endtime=none.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Get short date from 12/03/2024 17:51:30.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-FileType: found extension: [zip]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: Beta.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://chromiumdash.appspot.com/fetch_releases?channel=Beta&platform=Windows&num=6&offset=0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Found version: 132.0.6834.32
VERBOSE: Get-GoogleChrome: Get release data for this channel.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/beta/versions/all/releases?filter=endtime=none.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Get short date from 12/04/2024 15:37:55.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: Dev.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://chromiumdash.appspot.com/fetch_releases?channel=Dev&platform=Windows&num=6&offset=0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Found version: 133.0.6847.2
VERBOSE: Get-GoogleChrome: Get release data for this channel.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/dev/versions/all/releases?filter=endtime=none.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Get short date from 11/21/2024 15:32:15.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: Canary.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://chromiumdash.appspot.com/fetch_releases?channel=Canary&platform=Windows&num=6&offset=0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Found version: 133.0.6877.0
VERBOSE: Get-GoogleChrome: Get release data for this channel.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/canary/versions/all/releases?filter=endtime=none.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Get short date from 12/04/2024 21:25:35.
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/update2/installers/ChromeSetup.exe, defaulting to x86.
VERBOSE: Get-FileType: found extension: [exe]

Version      : 133.0.6877.0
Channel      : Canary
StartDate    : 4/12/2024
Architecture : x86
Type         : exe
URI          : https://dl.google.com/update2/installers/ChromeSetup.exe

Version      : 133.0.6847.2
Channel      : Dev
StartDate    : 21/11/2024
Architecture : x64
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi

Version      : 133.0.6847.2
Channel      : Dev
StartDate    : 21/11/2024
Architecture : x86
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi

Version      : 132.0.6834.32
Channel      : Beta
StartDate    : 4/12/2024
Architecture : x64
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi

Version      : 132.0.6834.32
Channel      : Beta
StartDate    : 4/12/2024
Architecture : x86
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi

Version      : 131.0.6778.109
Channel      : Stable
StartDate    : 3/12/2024
Architecture : x64
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Version      : 131.0.6778.109
Channel      : Stable
StartDate    : 3/12/2024
Architecture : x64
Type         : zip
URI          : https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip

Version      : 131.0.6778.109
Channel      : Stable
StartDate    : 3/12/2024
Architecture : x86
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi

Version      : 131.0.6778.109
Channel      : Stable
StartDate    : 3/12/2024
Architecture : ARM64
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise_Arm64.msi

Version      : 130.0.6723.152
Channel      : Extended
StartDate    : 3/12/2024
Architecture : x64
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Version      : 130.0.6723.152
Channel      : Extended
StartDate    : 3/12/2024
Architecture : x86
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
@aaronparker aaronparker added the bug Something isn't working label Dec 5, 2024
@AScott-WWF
Copy link

I think this may be partly due to the mess that the developers made of the MSI file (at least for stable version 131.0.6778.109)

We always deploy the latest release as the 64-bit standalone enterprise edition .msi installer to our estate, unfortunately due to a change in the packaging version the Chromium Project / Google Chrome developers used, they introduced a regression bug which meant the .msi file they published did not work correctly. This has meant we can not update the current version of Google Chrome at the moment via a push install.

The Developers have a bug raised against this issue (https://issues.chromium.org/issues/382108340), which has been assigned "Priority 1, Severity 2", so is getting about as high attention as is possible. The latest comment states:
"We've currently landed the necessary fixes and we're currently waiting for the next version of the MSI installer to be built and released. At this time that is expected on Tuesday Dec 10th; we are exploring accelerating that timeline but there is nothing definite yet. As a workaround until then, it may work for you to use a tagged URL like the one above."

N.B. Unfortunately the tagged URL version still does not work for us.

@AScott-WWF
Copy link

A colleague has just discovered this Powershell one liner to return the latest version, it uses the same source of info that Evergreen uses, so sharing here as it may be useful for anyone that does not have the Evergreen module installed.

($(irm 'https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions').versions | select -first 1).version

obviously the win64 and stable parts can be replaced with the appropriate OS Architecture and Channel as required

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants