[MM-61919] Wrap potential crash in try/catch for thumbnails, fall back to createFromPath
(#3224)
* [MM-61919] Wrap potential crash in try/catch for thumbnails, fall back to `createFromPath` * Fix lint
This commit is contained in:
@@ -630,14 +630,23 @@ export class DownloadsManager extends JsonFileManager<DownloadedItems> {
|
||||
|
||||
let thumbnailData;
|
||||
if (state === 'completed' && item.getMimeType().toLowerCase().startsWith('image/')) {
|
||||
// Linux doesn't support the thumbnail creation so we have to use the base function
|
||||
if (process.platform === 'linux') {
|
||||
const fallback = async () => {
|
||||
// We also will cap this at 1MB so as to not inflate the memory usage of the downloads dropdown
|
||||
if (item.getReceivedBytes() < 1000000) {
|
||||
thumbnailData = (await nativeImage.createFromPath(overridePath ?? item.getSavePath())).toDataURL();
|
||||
}
|
||||
};
|
||||
|
||||
// Linux doesn't support the thumbnail creation so we have to use the base function
|
||||
if (process.platform === 'linux') {
|
||||
await fallback();
|
||||
} else {
|
||||
// This has been known to fail on Windows, see: https://github.com/mattermost/desktop/issues/3140
|
||||
try {
|
||||
thumbnailData = (await nativeImage.createThumbnailFromPath(overridePath ?? item.getSavePath(), {height: 32, width: 32})).toDataURL();
|
||||
} catch {
|
||||
await fallback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user