Skip to content

Commit 39a04cc

Browse files
authored
Fixed crashing unit tests from userAgent update (#71)
1 parent 79efdda commit 39a04cc

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

Sources/Segment/Plugins/Platforms/Vendors/AppleUtils.swift

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,15 @@ internal class iOSVendorSystem: VendorSystem {
6666
override var userAgent: String? {
6767
#if !os(tvOS)
6868
var userAgent: String?
69-
DispatchQueue.main.sync {
70-
userAgent = WKWebView().value(forKey: "userAgent") as? String
69+
70+
if Thread.isMainThread {
71+
userAgent = WKWebView().value(forKey: "userAgent") as? String
72+
} else {
73+
DispatchQueue.main.sync {
74+
userAgent = WKWebView().value(forKey: "userAgent") as? String
75+
}
7176
}
77+
7278
return userAgent
7379
#else
7480
// webkit isn't on tvos
@@ -233,9 +239,14 @@ internal class MacOSVendorSystem: VendorSystem {
233239

234240
override var userAgent: String? {
235241
var userAgent: String?
236-
DispatchQueue.main.sync {
237-
userAgent = WKWebView().value(forKey: "userAgent") as? String
242+
if Thread.isMainThread {
243+
userAgent = WKWebView().value(forKey: "userAgent") as? String
244+
} else {
245+
DispatchQueue.main.sync {
246+
userAgent = WKWebView().value(forKey: "userAgent") as? String
247+
}
238248
}
249+
239250
return userAgent
240251
}
241252

0 commit comments

Comments
 (0)