Join GitHub today
Large photos (e.g. from a smart phone camera) cannot be opened at all on Signal 2.29.1 #3860
After the recent update that changes it so signal doesn't display image previews for large-dimension images, images are no longer viewable in any way. Tapping on an image just brings up the "share" dialog.
Steps to reproduce
Actual result: There is no clear way to view images in the app anymore.
Expected result: I should be able to easily view these images.
Device: iPhone 8S
iOS version: 11.4.1
Signal version: 2.29.1
I have anecdotal evidence of the same thing happening when I send a photo taken with my Pixel 2 camera app or an mp4 video I downloaded. I use Signal 4.24.8 for Android on my Pixel 2 to send the photo/video. The other party is on iOS with Signal 2.29.1 and they can't see it.
Smaller photos, like ones saved by WhatsApp (which resizes and compresses photos) or photos taken directly by Signal app are received without a problem on Signal 2.29.1 on iOS.
My friend has an iOS device, and I'm on Android 8 (Sony firmware) and we both have this problem both ways. He can download it to show the image, in my case I don't even see that a image is sent.
A smaller image size works though, it seems it's just big images that fail.
So, looking through at the commit, I think the cause is in https://github.com/signalapp/Signal-iOS/blob/e715bf9ea2f51e2d0c4549d7b4fa68e442e4d026/SignalServiceKit/src/Util/NSData%2BImage.m , around line 138. It effectively restricts the image to being 4 megapixel in resolution. However, we're still sending images larger than that. If
Independent of the threshold that an image is considered "too large", I think it's also a UX bug that images like this cannot be opened seamlessly in the image viewer. The main bug that the patch in question was fixing was a DoS attack bug, right? From creating the thumbnail automatically being able to exhaust memory with a maliciously-crafted image? (Like a pure-white PNG that's 1B pixels by 1B pixels).
If that's the case, I don't see why using the built-in seamless image viewer isn't an option, since the user tapping the icon would only result in one crash, and not a complete inability to view the conversation. And it's the same crash that would otherwise happen in any other image viewer the user does use to open the image.
I think this issue would be much lower priority if the original patch had preserved the ability to still use the built-in image viewer.