From 7204aa4e785adacb8482388dfa2d916959319075 Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Fri, 28 May 2021 11:55:13 -0400 Subject: [PATCH] Add support for Chrome and Safari to DestinationEnvironment (#228) Ref #227. Not sure if `.edge` is intended to represent Chrome-Edge or legacy Edge. --- .../Server/Environment+UserAgent.swift | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Sources/CartonKit/Server/Environment+UserAgent.swift b/Sources/CartonKit/Server/Environment+UserAgent.swift index e7b8e14a..1a304a5e 100644 --- a/Sources/CartonKit/Server/Environment+UserAgent.swift +++ b/Sources/CartonKit/Server/Environment+UserAgent.swift @@ -16,8 +16,21 @@ import SwiftToolchain extension DestinationEnvironment { init?(userAgent: String) { - guard userAgent.contains("Firefox") else { return nil } + if userAgent.contains("Firefox") { + self = .firefox + } + // Edge UA string contains `Chrome` and `Safari` so this must go first + if userAgent.contains("Edg/") { + self = .edge + } + // Chrome UA string contains `Safari` so this must go first + if userAgent.contains("Chrome/") { + self = .chrome + } + if userAgent.contains("Safari/") { + self = .safari + } - self = .firefox + return nil } }