diff --git a/Shared/HTMLMetadata/HTMLMetadataDownloader.swift b/Shared/HTMLMetadata/HTMLMetadataDownloader.swift
index fd59fa0f3..d5ac35405 100644
--- a/Shared/HTMLMetadata/HTMLMetadataDownloader.swift
+++ b/Shared/HTMLMetadata/HTMLMetadataDownloader.swift
@@ -7,12 +7,20 @@
//
import Foundation
+import os
import Web
import Parser
struct HTMLMetadataDownloader {
- @MainActor static func downloadMetadata(for url: String) async -> HTMLMetadata? {
+ nonisolated(unsafe) private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "HTMLMetadataDownloader")
+ private static let debugLoggingEnabled = true
+
+ static func downloadMetadata(for url: String) async -> HTMLMetadata? {
+
+ if debugLoggingEnabled {
+ logger.debug("HTMLMetadataDownloader download for \(url)")
+ }
guard let actualURL = URL(string: url) else {
return nil
@@ -25,18 +33,23 @@ struct HTMLMetadataDownloader {
if let data, !data.isEmpty, let response, response.statusIsOK {
let urlToUse = response.url ?? actualURL
let parserData = ParserData(url: urlToUse.absoluteString, data: data)
+
+ if debugLoggingEnabled {
+ logger.debug("HTMLMetadataDownloader parsing metadata for \(url)")
+ }
+
return await parseMetadata(with: parserData)
}
+ if debugLoggingEnabled {
+ logger.debug("HTMLMetadataDownloader failed download for \(url)")
+ }
+
return nil
}
- @MainActor private static func parseMetadata(with parserData: ParserData) async -> HTMLMetadata? {
+ private static func parseMetadata(with parserData: ParserData) async -> HTMLMetadata? {
- let task = Task.detached { () -> HTMLMetadata? in
- HTMLMetadataParser.metadata(with: parserData)
- }
-
- return await task.value
+ return HTMLMetadataParser.metadata(with: parserData)
}
}