diff --git a/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift b/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift index 4f0e8112b..7c58c17cd 100644 --- a/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift +++ b/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift @@ -31,6 +31,15 @@ public class OWSLinkPreviewDraft: NSObject { super.init() } + deinit { + // Eagerly clean up temp files. + if let imageFilePath = imageFilePath { + DispatchQueue.global().async { + OWSFileSystem.deleteFile(imageFilePath) + } + } + } + fileprivate func isValid() -> Bool { var hasTitle = false if let titleValue = title { @@ -462,11 +471,14 @@ public class OWSLinkPreview: MTLModel { Logger.verbose("url: \(url)") - guard let sessionManager: AFHTTPSessionManager = ContentProxy.sessionManager(baseUrl: nil) else { - owsFailDebug("Couldn't create session manager.") - completion(nil) - return - } + let sessionConfiguration = ContentProxy.sessionConfiguration() + + // Don't use any caching to protect privacy of these requests. + sessionConfiguration.requestCachePolicy = .reloadIgnoringLocalCacheData + sessionConfiguration.urlCache = nil + + let sessionManager = AFHTTPSessionManager(baseURL: nil, + sessionConfiguration: sessionConfiguration) sessionManager.requestSerializer = AFHTTPRequestSerializer() sessionManager.responseSerializer = AFHTTPResponseSerializer()