From b8ffb10db187c70219c594ddfe7cdebc6885d552 Mon Sep 17 00:00:00 2001 From: Yuriy Date: Fri, 26 Apr 2024 19:41:40 -0400 Subject: [PATCH] improved chrome update functionality --- Chrome-Functions.ahk | 424 ++++++++++++++++++++++++------------------- 1 file changed, 237 insertions(+), 187 deletions(-) diff --git a/Chrome-Functions.ahk b/Chrome-Functions.ahk index 9eea04c..f3d417f 100644 --- a/Chrome-Functions.ahk +++ b/Chrome-Functions.ahk @@ -21,6 +21,9 @@ global InstalledChromeVersion ; Chrome Related Functions ;------------------------------------------------ DownloadLatestChromium(){ + Message = Checking Variables for Downloading Newest Chrome + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + if(ChromeFilepath = "") ChromeFilepath := GetInstalledChromeFilepath() @@ -90,9 +93,9 @@ DownloadLatestChromium(){ ; close any open instances of Chromium - SetTitleMatchMode, 2 ; substring - + ; SetTitleMatchMode, 2 ; substring +/* if(WinExist(" - Chromium")){ Message = Trying to close any open Chromium Windows SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") @@ -111,292 +114,339 @@ DownloadLatestChromium(){ MsgBox 0x10,, %Message% return } + */ + ; make sure all instances of chrome are closed + Loop, { + ChromeOpen := WinExist("ahk_exe chrome.exe") + if(ChromeOpen) { + Message = Chrome is Open. Asking user to close instances before continuing. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - ; msgbox + MsgBox 0x41, Chrome is Open, Please close all instances of Chrome and then click OK to continue with replacing Chrome with the newest version. - FileGetTime, ChromeDriverExeOldCreationTime, %ChromeDriverProgramFilesExeFilepath%, C + IfMsgBox OK, { + } Else IfMsgBox Cancel, { + return + } + } + else, + break + } - Message = Downloading Chromedriver v%ChromeStableLatestVersion% to:`n%ChromeDriverDownloadZipFilepath% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - UrlDownloadToFile, %chromedriverDLURL64%, %ChromeDriverDownloadZipFilepath% - Message = Downloading Chromium v%ChromeStableLatestVersion% to:`n%ChromeDownloadZipFilepath% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - UrlDownloadToFile, %chromeDLURL64%, %ChromeDownloadZipFilepath% + ; make sure all instances of chromedriver.exe are closed + Message = Checking and killing any instances of the chromedriver.exe process + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - ; delete the pre-existing chrome-win64 directory - Message = Deleting Old Chromium Directory - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + Loop, 5 { - FileRemoveDir, %ChromeExtractedDirectory%, 1 - if(FileExist(ChromeExtractedDirectory)){ - Message = Failed to delete the old Chromium. `nPlease manually delete the following directory and then run the Chrome Update again.`n`n %ChromeExtractedDirectory% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar") + Process, Exist, chromedriver.exe + ChromedriverExists := ErrorLevel - MsgBox 0x10,, %Message% - - ToolTip - return - } + if(ChromedriverExists){ + Message = Chromedriver Exists on check number %A_Index% + SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging") - - ; Double check that .zip files exist - ChromeDriverZipExists := FileExist(ChromeDriverDownloadZipFilepath) - if(!ChromeDriverZipExists){ - Message = Download of chromedriver failed for some reason. chromedriver.zip not found. - SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - MsgBox 0x10,, %Message% - Return - } + Process, Close, chromedriver.exe + sleep, 5000 ; wait 5 seconds before checking again + } + else, + break - ChromeZipExists := FileExist(ChromeDownloadZipFilepath) - if(!ChromeZipExists){ - Message = Download of chrome failed for some reason. chrome.zip not found. - SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - MsgBox 0x10,, %Message% - Return - } + Message = Chrome Update Failed. Unable to kill background chromedriver.exe process + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + return + } + FileGetTime, ChromeDriverExeOldCreationTime, %ChromeDriverProgramFilesExeFilepath%, C - Message = Extracting Chromedriver v%ChromeStableLatestVersion% Zip file - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Unzip(ChromeDriverDownloadZipFilepath, ChromeDriverDownloadFilepath) - Message = Extracting Chromium v%ChromeStableLatestVersion% Zip file - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Unzip(ChromeDownloadZipFilepath, ChromeExtractedDirectory) + Message = Downloading Chromedriver v%ChromeStableLatestVersion% `nFrom: %chromedriverDLURL64%`nTo: %ChromeDriverDownloadZipFilepath% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + UrlDownloadToFile, %chromedriverDLURL64%, %ChromeDriverDownloadZipFilepath% - + Message = Downloading Chromium v%ChromeStableLatestVersion% `nfrom: %chromeDLURL64% to:`n%ChromeDownloadZipFilepath%`n(This might take 1-2 minutes) + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + UrlDownloadToFile, %chromeDLURL64%, %ChromeDownloadZipFilepath% - - ; Check if the Copy-ChromeDriver-To-Program-Files.exe file exists - ; @todo, remove later. this is temporary to fix chromedriver-mover being broken and needing to be replaced - FileDelete, %ChromeDriverMoverEXEFilepath% + ; delete the pre-existing chrome-win64 directory + Message = Deleting Old Chromium Directory + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Message = Checking Chromedriver-Mover.exe exists - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - if(!FileExist(ChromeDriverMoverEXEFilepath)){ - Message = Chromedriver-Mover not found. Downloading from Gitea - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - UrlDownloadToFile, %ChromeDriverMoverURL%, %ChromeDriverMoverEXEFilepath% - if(ErrorLevel){ - Message = Failed to download the Copy-ChromeDriver-To-Program-Files.exe executable. `n`n%ManualMoveChromedriverMessage% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + FileRemoveDir, %ChromeExtractedDirectory%, 1 + if(FileExist(ChromeExtractedDirectory)){ + Message = Failed to delete the old Chromium. `nPlease manually delete the following directory and then run the Chrome Update again.`n`n %ChromeExtractedDirectory% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar") + + MsgBox 0x10,, %Message% ToolTip - Return + return } - } - if(!FileExist(ChromeDriverMoverEXEFilepath)){ - Message = ChromeDriver-Mover not found after downloading. `nPossibly triggered and deleted by Antivirus?`n`n%ManualMoveChromedriverMessage% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging,msgbox") + ; Double check that .zip files exist + ChromeDriverZipExists := FileExist(ChromeDriverDownloadZipFilepath) + if(!ChromeDriverZipExists){ + Message = Download of chromedriver failed for some reason. chromedriver.zip not found. + SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + MsgBox 0x10,, %Message% + Return + } - ToolTip - return - } + ChromeZipExists := FileExist(ChromeDownloadZipFilepath) + if(!ChromeZipExists){ + Message = Download of chrome failed for some reason. chrome.zip not found. + SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + MsgBox 0x10,, %Message% + Return + } - Message = Starting up Chromedriver-Mover - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - ; Msgbox % "ChromeDriverMoverEXEFilepath: " ChromeDriverMoverEXEFilepath - ; Msgbox % "ChromeDriverDownloadFilepath: " ChromeDriverDownloadFilepath - try, Run "%ChromeDriverMoverEXEFilepath%" "%ChromeDriverDownloadFilepath%" - if(ErrorLevel = "ERROR"){ - Message = Failed to run Chromedriver-Mover.exe program to automatically copy the chromedriver to Program Files.`n%ManualMoveChromedriverMessage% - MsgBox 0x40,, %Message% - } + Message = Extracting Chromedriver v%ChromeStableLatestVersion% Zip file + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + Unzip(ChromeDriverDownloadZipFilepath, ChromeDriverDownloadFilepath) + Message = Extracting Chromium v%ChromeStableLatestVersion% Zip file + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + Unzip(ChromeDownloadZipFilepath, ChromeExtractedDirectory) - Message = Waiting 30 seconds for new Chromedriver to get moved to C:\Program Files\SeleniumBasic\ - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Loop, 30 { - sleep, 1000 - FileGetTime, ChromeDriverExeCurrentCreationTime, %ChromeDriverProgramFilesExeFilepath%, C - ; Msgbox % "ChromeDriverExeOldCreationTime: " ChromeDriverExeOldCreationTime - ; Msgbox % "ChromeDriverExeCurrentCreationTime: " ChromeDriverExeCurrentCreationTime + ; Check if the Copy-ChromeDriver-To-Program-Files.exe file exists - if(ErrorLevel){ + ; @todo, remove later. this is temporary to fix chromedriver-mover being broken and needing to be replaced + FileDelete, %ChromeDriverMoverEXEFilepath% + + Message = Checking Chromedriver-Mover.exe exists + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Message = chromedriver.exe not found in %ChromeDriverProgramFilesExeFilepath%. `nWaiting for new version to get copied over. + if(!FileExist(ChromeDriverMoverEXEFilepath)){ + Message = Chromedriver-Mover not found. Downloading from Gitea SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - ; sleep, 1000 - Continue + UrlDownloadToFile, %ChromeDriverMoverURL%, %ChromeDriverMoverEXEFilepath% + if(ErrorLevel){ + Message = Failed to download the Copy-ChromeDriver-To-Program-Files.exe executable. `n`n%ManualMoveChromedriverMessage% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + + ToolTip + Return + } } - if(ChromeDriverExeCurrentCreationTime != ChromeDriverExeOldCreationTime and ChromeDriverExeCurrentCreationTime != ""){ - break + + if(!FileExist(ChromeDriverMoverEXEFilepath)){ + Message = ChromeDriver-Mover not found after downloading. `nPossibly triggered and deleted by Antivirus?`n`n%ManualMoveChromedriverMessage% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging,msgbox") + + ToolTip + return } - ; sleep, 1000 - Continue - } + Message = Starting up Chromedriver-Mover + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + + + ; Msgbox % "ChromeDriverMoverEXEFilepath: " ChromeDriverMoverEXEFilepath + ; Msgbox % "ChromeDriverDownloadFilepath: " ChromeDriverDownloadFilepath + + try, Run "%ChromeDriverMoverEXEFilepath%" "%ChromeDriverDownloadFilepath%" + if(ErrorLevel = "ERROR"){ + Message = Failed to run Chromedriver-Mover.exe program to automatically copy the chromedriver to Program Files.`n%ManualMoveChromedriverMessage% + MsgBox 0x40,, %Message% + } + + + Message = Waiting 30 seconds for new Chromedriver to get moved to C:\Program Files\SeleniumBasic\ + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + + Loop, 30 { + sleep, 1000 - if(!FileExist(ChromeDriverProgramFilesExeFilepath)){ - Message = Failed to Automatically move chromedriver.exe`n%ManualMoveChromedriverMessage% + FileGetTime, ChromeDriverExeCurrentCreationTime, %ChromeDriverProgramFilesExeFilepath%, C + + ; Msgbox % "ChromeDriverExeOldCreationTime: " ChromeDriverExeOldCreationTime + ; Msgbox % "ChromeDriverExeCurrentCreationTime: " ChromeDriverExeCurrentCreationTime + + if(ErrorLevel){ + + Message = chromedriver.exe not found in %ChromeDriverProgramFilesExeFilepath%. `nWaiting for new version to get copied over. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + ; sleep, 1000 + Continue + + } + + if(ChromeDriverExeCurrentCreationTime != ChromeDriverExeOldCreationTime and ChromeDriverExeCurrentCreationTime != ""){ + break + } + + ; sleep, 1000 + Continue + } + + if(!FileExist(ChromeDriverProgramFilesExeFilepath)){ + Message = Failed to Automatically move chromedriver.exe`n%ManualMoveChromedriverMessage% + MsgBox 0x40,, %Message% + ToolTip + return + } + + Message = Chromium and Chromedriver.exe were updated successfully. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") MsgBox 0x40,, %Message% + ToolTip return } - Message = Chromium and Chromedriver.exe were updated successfully. - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - MsgBox 0x40,, %Message% - ToolTip - return -} + CheckForChromeUpdates(ChromeFilepath := ""){ + if(ChromeFilepath = "") + ChromeFilepath := GetInstalledChromeFilepath() + CurrentInstalledChromeVersion := GetInstalledChromeVersion() + CurrentChromeStableVersion := GetLatestChromeStableVersion() -CheckForChromeUpdates(ChromeFilepath := ""){ - if(ChromeFilepath = "") - ChromeFilepath := GetInstalledChromeFilepath() + if(CurrentInstalledChromeVersion < CurrentChromeStableVersion){ + ChromeUpdateAvailable := 1 + return ChromeUpdateAvailable + } + else, Return 0 - CurrentInstalledChromeVersion := GetInstalledChromeVersion() - CurrentChromeStableVersion := GetLatestChromeStableVersion() - if(CurrentInstalledChromeVersion < CurrentChromeStableVersion){ - ChromeUpdateAvailable := 1 - return ChromeUpdateAvailable } - else, Return 0 -} + GetInstalledChromeFilepath(){ + ; ChromeFilepath is global variable + if(ChromeFilepath = ""){ -GetInstalledChromeFilepath(){ - ; ChromeFilepath is global variable + ChromePortableFilepath = %A_ScriptDir%\Lib\chrome-win64\chrome.exe + ChromePortableFilepath2 = %A_ScriptDir%\Lib\chrome-win64\chrome-win64\chrome.exe ; filepath of chrome.exe that was downloaded automatically using this uploader - if(ChromeFilepath = ""){ + if(FileExist(ChromePortableFilepath) or FileExist(ChromePortableFilepath2)){ + if(FileExist(ChromePortableFilepath2)) + ChromeFilepath := ChromePortableFilepath2 - ChromePortableFilepath = %A_ScriptDir%\Lib\chrome-win64\chrome.exe - ChromePortableFilepath2 = %A_ScriptDir%\Lib\chrome-win64\chrome-win64\chrome.exe ; filepath of chrome.exe that was downloaded automatically using this uploader + if(FileExist(ChromePortableFilepath)) + ChromeFilepath := ChromePortableFilepath + + Message = Using Chromium Portable for Upload + SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging") + } + else { + MsgBox 0x10, Chromium Portable not Found, Chromium Portable not found. `nPlease make sure it's located at one of the following paths and then try again.`n`n%ChromePortableFilepath% `nOR`n%ChromePortableFilepath2% - if(FileExist(ChromePortableFilepath) or FileExist(ChromePortableFilepath2)){ - if(FileExist(ChromePortableFilepath2)) - ChromeFilepath := ChromePortableFilepath2 - if(FileExist(ChromePortableFilepath)) - ChromeFilepath := ChromePortableFilepath + ; Leave this in for now, but i don't think we will be going to using the system Chrome in the future. + ; if(FileExist("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")) + ; ChromeFilepath = C:\Program Files (x86)\Google\Chrome\Application\chrome.exe - Message = Using Chromium Portable for Upload - SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging") + ; if(FileExist("C:\Program Files\Google\Chrome\Application\chrome.exe")) + ; ChromeFilepath = C:\Program Files\Google\Chrome\Application\chrome.exe + } } - else { - MsgBox 0x10, Chromium Portable not Found, Chromium Portable not found. `nPlease make sure it's located at one of the following paths and then try again.`n`n%ChromePortableFilepath% `nOR`n%ChromePortableFilepath2% + ToolTip + } - ; Leave this in for now, but i don't think we will be going to using the system Chrome in the future. - ; if(FileExist("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")) - ; ChromeFilepath = C:\Program Files (x86)\Google\Chrome\Application\chrome.exe + GetInstalledChromeVersion(){ - ; if(FileExist("C:\Program Files\Google\Chrome\Application\chrome.exe")) - ; ChromeFilepath = C:\Program Files\Google\Chrome\Application\chrome.exe + if(ChromeFilepath = ""){ + GetInstalledChromeFilepath() } - } - ToolTip -} + GetInstalledChromeVersionCommand = powershell (Get-Item '%ChromeFilepath%').VersionInfo.ProductVersion + InstalledChromeVersion := RunCMD(GetInstalledChromeVersionCommand) -GetInstalledChromeVersion(){ + if(InStr(InstalledChromeVersion, "`r")) + InstalledChromeVersion := StrReplace(InstalledChromeVersion, "`r") ; replace any newline characters that powershell returns - if(ChromeFilepath = ""){ - GetInstalledChromeFilepath() + return InstalledChromeVersion } - GetInstalledChromeVersionCommand = powershell (Get-Item '%ChromeFilepath%').VersionInfo.ProductVersion - InstalledChromeVersion := RunCMD(GetInstalledChromeVersionCommand) - if(InStr(InstalledChromeVersion, "`r")) - InstalledChromeVersion := StrReplace(InstalledChromeVersion, "`r") ; replace any newline characters that powershell returns - - return InstalledChromeVersion -} + GetLatestChromeStableVersion(){ + ; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints + json_str := urldownloadtovar("https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json") -GetLatestChromeStableVersion(){ - ; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints - json_str := urldownloadtovar("https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json") - + ; converts json data variable into object + parsed := JSON.Load(json_str) - ; converts json data variable into object - parsed := JSON.Load(json_str) + try ChromeStableLatestVersion := parsed.channels.stable.version - try ChromeStableLatestVersion := parsed.channels.stable.version + if(ChromeStableLatestVersion = ""){ + return "Failed to parse json. " + } - if(ChromeStableLatestVersion = ""){ - return "Failed to parse json. " + return ChromeStableLatestVersion } - return ChromeStableLatestVersion -} + GetDownloadURLOfChromeAndDriver(InstalledChromeVersion){ + ; Will return the download URL of Chrome for Testing and Chrome Driver, seperated by a || -GetDownloadURLOfChromeAndDriver(InstalledChromeVersion){ - ; Will return the download URL of Chrome for Testing and Chrome Driver, seperated by a || + ; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints + json_str := urldownloadtovar("https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json") - ; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints - json_str := urldownloadtovar("https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json") - - ; requires #include of json.ahk in parent script - parsed := JSON.Load(json_str) + ; requires #include of json.ahk in parent script + parsed := JSON.Load(json_str) - ChromelabsJsonEntriesCount := parsed.versions.count() + ChromelabsJsonEntriesCount := parsed.versions.count() - if(ChromelabsJsonEntriesCount = ""){ - return "Failed to parse chromedriver json. " - } + if(ChromelabsJsonEntriesCount = ""){ + return "Failed to parse chromedriver json. " + } - loop % ChromelabsJsonEntriesCount { + loop % ChromelabsJsonEntriesCount { - if(A_index = ChromelabsJsonEntriesCount){ - Message = "Failed to find %InstalledChromeVersion% in the ChromeLabs Json" - return Message - } + if(A_index = ChromelabsJsonEntriesCount){ + Message = "Failed to find %InstalledChromeVersion% in the ChromeLabs Json" + return Message + } - if(InstalledChromeVersion = parsed.versions[A_Index].version){ + if(InstalledChromeVersion = parsed.versions[A_Index].version){ - VersionIndex := A_Index + VersionIndex := A_Index - ; loop through the platforms to get download URL for Chrome - loop % parsed.versions[VersionIndex].downloads.chrome.count() { - - if(parsed.versions[VersionIndex].downloads.chrome[A_Index].platform = "win64") - chromeDLURL64 := parsed.versions[VersionIndex].downloads.chrome[A_Index].url - } + ; loop through the platforms to get download URL for Chrome + loop % parsed.versions[VersionIndex].downloads.chrome.count() { + if(parsed.versions[VersionIndex].downloads.chrome[A_Index].platform = "win64") + chromeDLURL64 := parsed.versions[VersionIndex].downloads.chrome[A_Index].url + } - ; loop through the platforms to get download URL for Chromedriver - loop % parsed.versions[VersionIndex].downloads.chromedriver.count() { - - if(parsed.versions[VersionIndex].downloads.chromedriver[A_Index].platform = "win64") - chromedriverDLURL64 := parsed.versions[VersionIndex].downloads.chromedriver[A_Index].url - } - break + ; loop through the platforms to get download URL for Chromedriver + loop % parsed.versions[VersionIndex].downloads.chromedriver.count() { + + if(parsed.versions[VersionIndex].downloads.chromedriver[A_Index].platform = "win64") + chromedriverDLURL64 := parsed.versions[VersionIndex].downloads.chromedriver[A_Index].url + } + + break + } } - } - URLS = %chromeDLURL64%||%chromedriverDLURL64% - return URLS -} \ No newline at end of file + URLS = %chromeDLURL64%||%chromedriverDLURL64% + return URLS + } \ No newline at end of file