Skip to content

Commit

Permalink
Merge pull request #724 from quoid/fix/avoid-potential-thread-crashes
Browse files Browse the repository at this point in the history
fix: further avoid potential thread crashes
  • Loading branch information
ACTCD authored Sep 21, 2024
2 parents 310f29e + 8fa365d commit c38c3a3
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions xcode/Shared/UrlPolyfill.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,18 @@ func jsLikeURL(_ urlString: String, baseString: String? = nil) -> [String: Strin
guard let scheme = url.scheme else {
return nil
}
var port = ""
if let portInt = url.port { port = String(portInt) }
if (scheme == "http" && port == "80") { port = "" }
if (scheme == "https" && port == "443") { port = "" }
/*
The issue still exists as of macOS 14.4, iOS 17.0
https://stackoverflow.com/questions/74445926/url-host-deprecated-but-replacement-crashes
https://forums.swift.org/t/does-url-query-percentencoded-calls-url-host-percentencoded-under-the-hood/70452
https://forums.developer.apple.com/forums/thread/722451
*/
guard let hostname = url.host else {
return nil
}
var port = (url.port == nil) ? "" : String(url.port!)
if (scheme == "http" && port == "80") { port = "" }
if (scheme == "https" && port == "443") { port = "" }
if #available(macOS 13.0, iOS 16.0, *) {
// let hostname = url.host(percentEncoded: true) ?? ""
if #available(macOS 15.0, iOS 18.0, *) {
guard let hostname = url.host(percentEncoded: true) else { return nil }
let host = (port == "") ? hostname : "\(hostname):\(port)"
let query = url.query(percentEncoded: true) ?? ""
let fragment = url.fragment(percentEncoded: true) ?? ""
Expand All @@ -83,6 +81,7 @@ func jsLikeURL(_ urlString: String, baseString: String? = nil) -> [String: Strin
"username": url.user(percentEncoded: true) ?? ""
]
} else {
guard let hostname = url.host else { return nil }
let host = (port == "") ? hostname : "\(hostname):\(port)"
let query = url.query ?? ""
let fragment = url.fragment ?? ""
Expand Down

0 comments on commit c38c3a3

Please sign in to comment.