From fca6f98fde037b71a3dcab5606e89be3f4bb9738 Mon Sep 17 00:00:00 2001 From: Janez Troha Date: Tue, 7 Feb 2023 10:32:04 +0100 Subject: [PATCH] Update Google Chrome version detection based on new rules ref: https://developer.chrome.com/blog/early-stable/ --- Pareto/Checks/GoogleChrome.swift | 12 +++++++----- Pareto/Info.plist | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Pareto/Checks/GoogleChrome.swift b/Pareto/Checks/GoogleChrome.swift index 58e21878..1411deec 100644 --- a/Pareto/Checks/GoogleChrome.swift +++ b/Pareto/Checks/GoogleChrome.swift @@ -16,14 +16,14 @@ import Version // MARK: - GoogleResponse private struct GoogleResponse: Codable { - let versions: [ChromeVersion] - let nextPageToken: String + let releases: [ChromeVersion] } // MARK: - Version private struct ChromeVersion: Codable { - let name, version: String + let version: String + let fraction: Float } class AppGoogleChromeCheck: AppCheck { @@ -50,11 +50,13 @@ class AppGoogleChromeCheck: AppCheck { } override func getLatestVersion(completion: @escaping (String) -> Void) { - let url = viaEdgeCache("https://versionhistory.googleapis.com/v1/chrome/platforms/mac/channels/stable/versions") + let url = viaEdgeCache("https://versionhistory.googleapis.com/v1/chrome/platforms/mac/channels/stable/versions/all/releases?filter=endtime=none") os_log("Requesting %{public}s", url) AF.request(url).responseDecodable(of: GoogleResponse.self, queue: AppCheck.queue, completionHandler: { response in if response.error == nil { - let v = response.value?.versions.first?.version.split(separator: ".") ?? ["0", "0", "0"] + let v = response.value?.releases.filter({ v in + v.fraction >= 0.9 + }).first?.version.split(separator: ".") ?? ["0", "0", "0"] completion("\(v[0]).\(v[1]).\(v[2])") } else { os_log("%{public}s failed: %{public}s", self.appBundle, response.error.debugDescription) diff --git a/Pareto/Info.plist b/Pareto/Info.plist index 88c707a8..300c2320 100644 --- a/Pareto/Info.plist +++ b/Pareto/Info.plist @@ -26,7 +26,7 @@ CFBundleVersion - 5144 + 5145 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion