Merge branch 'charlesmchen/linkPreviewsUserAgent'

pull/1/head
Matthew Chen 6 years ago
commit 60163c2ceb

@ -719,11 +719,6 @@ const CGFloat kMaxTextViewHeight = 98;
{
OWSAssertIsOnMainThread();
if (self.wasLinkPreviewCancelled) {
[self clearLinkPreviewStateAndView];
return;
}
NSString *body =
[[self messageText] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (body.length < 1) {
@ -732,6 +727,11 @@ const CGFloat kMaxTextViewHeight = 98;
return;
}
if (self.wasLinkPreviewCancelled) {
[self clearLinkPreviewStateAndView];
return;
}
// Don't include link previews for oversize text messages.
if ([body lengthOfBytesUsingEncoding:NSUTF8StringEncoding] >= kOversizeTextMessageSizeThreshold) {
[self clearLinkPreviewStateAndView];

@ -434,6 +434,15 @@ public class OWSLinkPreview: MTLModel {
public class func previewUrl(forMessageBodyText body: String?) -> String? {
AssertIsOnMainThread()
// Exit early if link previews are not enabled in order to avoid
// tainting the cache.
guard OWSLinkPreview.featureEnabled else {
return nil
}
guard SSKPreferences.areLinkPreviewsEnabled() else {
return nil
}
if let cachedUrl = previewUrlCache.object(forKey: body as AnyObject) as? String {
Logger.verbose("URL parsing cache hit.")
guard cachedUrl.count > 0 else {
@ -501,6 +510,16 @@ public class OWSLinkPreview: MTLModel {
private class func setCachedLinkPreview(_ linkPreviewDraft: OWSLinkPreviewDraft,
forPreviewUrl previewUrl: String) {
// Exit early if link previews are not enabled in order to avoid
// tainting the cache.
guard OWSLinkPreview.featureEnabled else {
return
}
guard SSKPreferences.areLinkPreviewsEnabled() else {
return
}
serialQueue.sync {
previewUrlCache.setObject(linkPreviewDraft, forKey: previewUrl as AnyObject)
}

@ -644,7 +644,7 @@ open class ProxiedContentDownloader: NSObject, URLSessionTaskDelegate, URLSessio
request.httpMethod = "HEAD"
request.httpShouldUsePipelining = true
// Some services like Reddit will severely rate-limit requests without a user agent.
request.addValue("Signal", forHTTPHeaderField: "User-Agent")
request.addValue("Signal iOS (+https://signal.org/download)", forHTTPHeaderField: "User-Agent")
let task = downloadSession.dataTask(with: request, completionHandler: { data, response, error -> Void in
if let data = data, data.count > 0 {

Loading…
Cancel
Save