aaronparker / evergreen

Create evergreen Windows image build pipelines with the latest version numbers and download URLs for common applications
http://stealthpuppy.com/evergreen/
MIT License
354 stars 62 forks source link

[Bug]: Google Chrome Incorrect Version Number #574

Open jcushenan opened 8 months ago

jcushenan commented 8 months ago

What happened?

The Evergreen module lists the latest Stable x64 msi version as 118.0.5993.117 but when it downloads and I check the properties, it is listed as 118.0.5993.118

Version

2310.868

What PowerShell edition/s are you running Evergreen on?

Windows PowerShell

Which operating system/s are you running Evergreen on?

Windows 10+

Have you reviewed the documentation?

Verbose output

VERBOSE: Function path: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2310.868\Apps\Get-GoogleChrome.ps1
VERBOSE: Function exists: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2310.868\Apps\Get-GoogleChrome.ps1.
VERBOSE: Dot sourcing: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2310.868\Apps\Get-GoogleChrome.ps1.
VERBOSE: Get-FunctionResource: read application resource strings from [C:\Program Files\WindowsPowerShell\Modules\Evergreen\2310.868\Manifests\GoogleChrome.json]
VERBOSE: Calling: Get-GoogleChrome.
VERBOSE: Get-GoogleChrome: Channel: extended.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/extended/versions/all/releases.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: GET with 0-byte payload
VERBOSE: received 120912-byte response of content type application/json; charset=UTF-8
VERBOSE: Get-GoogleChrome: Version: 118.0.5993.118
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-RestMethodWrapper: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions/all/releases.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: GET with 0-byte payload
VERBOSE: received 426034-byte response of content type application/json; charset=UTF-8
VERBOSE: Get-GoogleChrome: Version: 118.0.5993.117
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-GoogleChrome: Channel: beta.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/beta/versions/all/releases.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: GET with 0-byte payload
VERBOSE: received 124781-byte response of content type application/json; charset=UTF-8
VERBOSE: Get-GoogleChrome: Version: 119.0.6045.33
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-RestMethodWrapper: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/dev/versions/all/releases.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: GET with 0-byte payload
VERBOSE: received 171942-byte response of content type application/json; charset=UTF-8
VERBOSE: Get-GoogleChrome: Version: 120.0.6073.0
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-RestMethodWrapper: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/canary/versions/all/releases.
VERBOSE: Invoke-RestMethodWrapper: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: GET with 0-byte payload
VERBOSE: received 1168518-byte response of content type application/json; charset=UTF-8
VERBOSE: Get-GoogleChrome: Version: 120.0.6088.2
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      : 119.0.6045.33
Architecture : x64
Channel      : beta
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi

Version      : 119.0.6045.33
Architecture : x86
Channel      : beta
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi

Version      : 120.0.6088.2
Architecture : x86
Channel      : canary
Type         : exe
URI          : https://dl.google.com/update2/installers/ChromeSetup.exe

Version      : 120.0.6073.0
Architecture : x64
Channel      : dev
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi

Version      : 120.0.6073.0
Architecture : x86
Channel      : dev
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi

Version      : 118.0.5993.118
Architecture : x64
Channel      : extended
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Version      : 118.0.5993.118
Architecture : x86
Channel      : extended
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi

Version      : 118.0.5993.117
Architecture : x64
Channel      : stable
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Version      : 118.0.5993.117
Architecture : x64
Channel      : stable
Type         : zip
URI          : https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip

Version      : 118.0.5993.117
Architecture : x86
Channel      : stable
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
foxxcomm commented 8 months ago

Confirmed here as well just now:

The version of GoogleChrome Stable x64 msi reported by Get-EvergreenApp is 119.0.6045.59 but the downloadeded .msi is version 118.0.5993.118 (which the Chrome download site reports as the correct stable channel version).

PS > Get-EvergreenApp googlechrome

Version : 119.0.6045.59 Architecture : x86 Channel : beta Type : msi URI : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi

Version : 119.0.6045.59 Architecture : x64 Channel : beta Type : msi URI : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi

Version : 120.0.6091.0 Architecture : x86 Channel : canary Type : exe URI : https://dl.google.com/update2/installers/ChromeSetup.exe

Version : 120.0.6073.0 Architecture : x64 Channel : dev Type : msi URI : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi

Version : 120.0.6073.0 Architecture : x86 Channel : dev Type : msi URI : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi

Version : 118.0.5993.118 Architecture : x86 Channel : extended Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi

Version : 118.0.5993.118 Architecture : x64 Channel : extended Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Version : 119.0.6045.59 Architecture : x86 Channel : stable Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi

Version : 119.0.6045.59 Architecture : x64 Channel : stable Type : zip URI : https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip

Version : 119.0.6045.59 Architecture : x64 Channel : stable Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

in03 commented 8 months ago

Me too.

Evergreen

Version      : 119.0.6045.105
Architecture : x64
Channel      : stable
Type         : zip
URI          : https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip

MSI

image

aaronparker commented 8 months ago

The issue is that 119 is listed in the stable channel at the moment: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions/all/releases. We need to determine whether there are additional properties in the update feed to filter to find the current release version.

AndreDorsch commented 7 months ago

Mee too - now the reportet stable version is the 120.0.6099.62

Version Architecture Channel Type URI


120.0.6099.62 x64 beta msi https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi 120.0.6099.62 x86 beta msi https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi
121.0.6166.0 x86 canary exe https://dl.google.com/update2/installers/ChromeSetup.exe
121.0.6156.3 x64 dev msi https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi
121.0.6156.3 x86 dev msi https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi
118.0.5993.159 x64 extended msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
118.0.5993.159 x86 extended msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
120.0.6099.62 x64 stable msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
120.0.6099.62 x64 stable zip https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip
120.0.6099.62 x86 stable msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi

the file (googlechromestandaloneenterprise64.msi) behind is the correct stable version 119.0.6045.200

jms-du-se commented 7 months ago

The stable and beta version have the same version number. 119.0.6045.200 is the correct version for the stable release.

Version      : 120.0.6099.62
Architecture : x64
Channel      : beta
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi

Version      : 121.0.6156.3
Architecture : x64
Channel      : dev
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi

Version      : 118.0.5993.159
Architecture : x64
Channel      : extended
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Version      : 120.0.6099.62
Architecture : x64
Channel      : stable
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
AScott-WWF commented 7 months ago

IMHO I think Evergreen is working exactly as it should in this case. What we are seeing is the fact that Google have released "Chrome 120.0.6099.56 Early Stable Update" - Note the 'Early' in the name. (Previously raised in Issue 562) https://chromereleases.googleblog.com/2023/11/early-stable-update-for-desktop.html I think it should be considered that Google are 'Beta testing' their 'Early release stable channels' on a very small number of users (randomly chosen), so I suspect the URL that the software is downloaded from may either serve the Stable Release (at time of writing v119.0.6045.200) to the majority of users or 'Early' Stable Release (at time of writing v120.0.6099.62). As Google decide by an algorithm which file is served from the Download URI, I'd have to assume the versions detailed in the JSON that Google supplies is at times inaccurate.

My other bug bear is that Google often decide to release two different version numbers at the same time - most recent example: https://chromereleases.googleblog.com/2023/11/stable-channel-update-for-desktop_28.html So... Evergreen can not be expected to know accurately which version will be served by the Google algorithm

AScott-WWF commented 7 months ago

I have found today that the stable version is 120.0.6099.109 (or .110) where as the extended version is 120.0.6099.110, (https://chromereleases.googleblog.com/2023/12/stable-channel-update-for-desktop_12.html) The problem is both versions are served from exactly the same URI: https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi N.B. This location is defined (the same for both) in the Evergreen manifest file "C:\Program Files\WindowsPowerShell\Modules\Evergreen\<version>\Manifests\GoogleChrome.json" file Evergreen is currently showing Stable is .109 and extended is .110

Get-EvergreenApp Googlechrome -verbose | Where-Object {$_.Architecture -eq "x64" -and $_.Type -eq "msi" -and ($_.Channel -eq "stable" -or $_.Channel -eq "extended")} | Sort-Object Version
VERBOSE: Function path: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Apps\Get-Googlechrome.ps1
VERBOSE: Function exists: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Apps\Get-Googlechrome.ps1.
VERBOSE: Dot sourcing: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Apps\Get-Googlechrome.ps1.
VERBOSE: Get-FunctionResource: read application resource strings from [C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Manifests\Googlechrome.json]
VERBOSE: Calling: Get-Googlechrome.
VERBOSE: Get-GoogleChrome: Channel: extended.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/extended/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
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: Version: 120.0.6099.110
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: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
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: Version: 120.0.6099.109
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-GoogleChrome: Channel: beta.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/beta/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
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: Version: 121.0.6167.16
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: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/dev/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
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: Version: 122.0.6170.5
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: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/canary/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
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: Version: 122.0.6184.0
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      : 120.0.6099.109
Architecture : x64
Channel      : stable
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Version      : 120.0.6099.110
Architecture : x64
Channel      : extended
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

Unsure if this helps anyone else, But in my case I don't really care whether it's the stable or extended channel - I just want the latest version of either. So I have a workaround - I can always grab the latest version number, by returning both extended and stable, then sorting by Version and finally grabbing the last (or highest) version number with the following PowerShell :

Get-EvergreenApp Googlechrome | Where-Object {$_.Architecture -eq "x64" -and $_.Type -eq "msi" -and ($_.Channel -eq "stable" -or $_.Channel -eq "extended")} | Sort-Object Version | Select-Object -Last 1

Version      : 120.0.6099.110
Architecture : x64
Channel      : extended
Type         : msi
URI          : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi

If this still doesn't solve the version number reliability, I may resort to a sanity check of the downloaded msi file using Get-FileMetaData e.g.

((Get-FileMetaData -Folder "<Folder where MSI resides>\file.msi" | Select-Object Comments -ExpandProperty Comments)-split(" "))[0]
DanGough commented 4 months ago

I just hit this issue today also... Stable/Extended showing as 122.0.6261.69 and 122.0.6261.70 respectively, but both from the same URL (which downloads the Extended one ending in .70).

I guess I could just switch to using the Extended channel if this is always the version that gets served up by the fixed URL, but I will have to test that over a time period to see if it's viable.

ThiloL commented 3 months ago

image

Stable says .105, but in MSI is .106, looks like Google's update meta data is wrong

AScott-WWF commented 3 months ago

Unfortunately for us where we need consistency - The manner in which Google publish their meta data will always be wrong, especially when they release multiple 'Stable Release' versions at the same time. I'm sure Google have their reasons (??!?), but it just seems madness where we need some consistency. The current release notes state "The Stable channel has been updated to 123.0.6312.105/.106/.107 for Windows" Seems like a game of roulette... Am I going to get v.105, v.106 or v.107?

ThiloLangbeinHUK commented 3 months ago

Not nice image

AScott-WWF commented 3 months ago

Not nice image

Yep - Entirely expected The Release Notes for this Early Stable update state: "The Stable channel has been updated to 124.0.6367.60 for Windows and Mac as part of our early stable release to a small percentage of users...." Google use some sort of magic to restrict how many users get this early version - the rest will continue to recieve the last stable release until the next stable release is fully available.

aaronparker commented 2 months ago

These updated queries might work for providing the required version data:

Time stamp data

From here: https://chromiumdash.appspot.com/releases?platform=Windows

aaronparker commented 2 months ago

These updated URLs though, won't change the status of this issue - there is no Extended installer and there doesn't appear to be a way to return a URL with a specific version of the installer.

Evergreen is returning a URL to a download similar to the official download page here: https://chromeenterprise.google/browser/download/#windows-tab

I've removed the bug label from this issue, because this isn't a bug.

SpecterShell commented 2 months ago

The API for self-updating or downloading the installer used by the downloader on https://www.google.com/chrome/ returns the correct version. Even if the API is not for the enterprise MSI installer, both of them are updated to the same version almost at the same time according to my automation records.

$Object1 = Invoke-RestMethod -Uri 'https://update.googleapis.com/service/update2' -Method Post -Body @'
<?xml version="1.0" encoding="UTF-8"?>
<request protocol="3.0">
  <os platform="win" version="10.0.22000" arch="x64" />
  <app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="" ap="x64">
    <updatecheck />
  </app>
</request>
'@
aaronparker commented 2 months ago

Here's an update to GoogleChrome that includes the start date for that channel that can be used as an additional data point for version compare, particularly for the Extended channel

Version        StartDate Architecture Channel  Type URI
-------        --------- ------------ -------  ---- ---
125.0.6422.14  24/4/2024 x64          Beta     msi  https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi
125.0.6422.14  24/4/2024 x86          Beta     msi  https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi
126.0.6449.0   30/4/2024 x86          Canary   exe  https://dl.google.com/update2/installers/ChromeSetup.exe
126.0.6439.0   26/4/2024 x64          Dev      msi  https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi
126.0.6439.0   26/4/2024 x86          Dev      msi  https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi
124.0.6367.118 30/4/2024 x64          Extended msi  https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
124.0.6367.118 30/4/2024 x86          Extended msi  https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
124.0.6367.118 30/4/2024 x64          Stable   msi  https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
124.0.6367.118 30/4/2024 x64          Stable   zip  https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip
124.0.6367.118 30/4/2024 x86          Stable   msi  https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
AScott-WWF commented 2 months ago

I've removed the bug label from this issue, because this isn't a bug.

Maybe the issue subject could also be amended to remove the '[Bug]: ' prefix?