From f73f100717002526308b739e2f4cfefdbda0c146 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 17 Jan 2019 17:06:00 -0500 Subject: [PATCH 1/2] Link preview temp files. --- .../Interactions/OWSLinkPreview.swift | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift b/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift index 4f0e8112b..91d0944af 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.main.async { + OWSFileSystem.deleteFile(imageFilePath) + } + } + } + fileprivate func isValid() -> Bool { var hasTitle = false if let titleValue = title { @@ -462,11 +471,12 @@ 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. + sessionConfiguration.requestCachePolicy = .reloadIgnoringLocalCacheData + sessionConfiguration.urlCache = nil + let sessionManager = AFHTTPSessionManager(baseURL: nil, + sessionConfiguration: sessionConfiguration) sessionManager.requestSerializer = AFHTTPRequestSerializer() sessionManager.responseSerializer = AFHTTPResponseSerializer() From 0569ed3f59557ec115b276f7a156eacd21aa2384 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 23 Jan 2019 09:24:30 -0500 Subject: [PATCH 2/2] Respond to CR. --- .../src/Messages/Interactions/OWSLinkPreview.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift b/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift index 91d0944af..7c58c17cd 100644 --- a/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift +++ b/SignalServiceKit/src/Messages/Interactions/OWSLinkPreview.swift @@ -34,7 +34,7 @@ public class OWSLinkPreviewDraft: NSObject { deinit { // Eagerly clean up temp files. if let imageFilePath = imageFilePath { - DispatchQueue.main.async { + DispatchQueue.global().async { OWSFileSystem.deleteFile(imageFilePath) } } @@ -472,9 +472,11 @@ public class OWSLinkPreview: MTLModel { Logger.verbose("url: \(url)") let sessionConfiguration = ContentProxy.sessionConfiguration() - // Don't use any caching. + + // 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()