import AppKit import WebKit @MainActor enum RedditWebViewManager { private static let processPool = WKProcessPool() static func makeConfiguration() -> WKWebViewConfiguration { let configuration = WKWebViewConfiguration() configuration.processPool = processPool configuration.websiteDataStore = .default() configuration.defaultWebpagePreferences.allowsContentJavaScript = true configuration.preferences.isElementFullscreenEnabled = true let boundaryScript = WKUserScript( source: RedditPostBoundaryStyle.injectionScript, injectionTime: .atDocumentEnd, forMainFrameOnly: true ) configuration.userContentController.addUserScript(boundaryScript) return configuration } static func makeWebView() -> WKWebView { let webView = WKWebView(frame: .zero, configuration: makeConfiguration()) webView.allowsBackForwardNavigationGestures = true webView.allowsMagnification = true webView.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15" webView.underPageBackgroundColor = NSColor( red: 11.0 / 255.0, green: 14.0 / 255.0, blue: 20.0 / 255.0, alpha: 1.0 ) return webView } }