@@ -1,35 +1,41 @@
1−From aa94e4c644747ef113927f762cb5807e4bd26cb8 Mon Sep 17 00:00:00 2001
1+From 04ce7f4f84d726f660c66e874b5bc91d77242eb5 Mon Sep 17 00:00:00 2001
22From: Marcel Alexandru Nitan <nitan.marcel@protonmail.com>
3−Date: Sat, 26 Mar 2022 00:59:51 +0200
4−Subject: [PATCH] Create data urls instead of object urls on media download
3+Date: Sat, 2 Apr 2022 00:11:12 +0300
4+Subject: [PATCH] Create data url instead of object url
55
66---
7− src/app/molecules/media/Media.jsx | 6 ++++--
8− 1 file changed, 4 insertions(+), 2 deletions(-)
7+ src/app/molecules/media/Media.jsx | 15 +++++++++++++--
8+ 1 file changed, 13 insertions(+), 2 deletions(-)
99
1010diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx
11−index 6fc3851..5a9131c 100644
11+index 6fc3851..262aa94 100644
1212--- a/src/app/molecules/media/Media.jsx
1313+++ b/src/app/molecules/media/Media.jsx
14−@@ -41,6 +41,8 @@ function getBlobSafeMimeType(mimetype) {
15− return mimetype;
14+@@ -48,14 +48,25 @@ async function getDecryptedBlob(response, type, decryptData) {
15+ return blob;
1616 }
1717
18−+const fileReader = new FileReader();
18++function getDataUrl(blob) {
19++ return new Promise(function (resolve, reject) {
20++ const reader = new FileReader();
21++ reader.onload = function () {
22++ resolve(reader.result);
23++ }
24++ reader.onerror = reject;
25++ reader.readAsDataURL(blob);
26++ });
27++}
1928+
20− async function getDecryptedBlob(response, type, decryptData) {
21− const arrayBuffer = await response.arrayBuffer();
22− const dataArray = await encrypt.decryptAttachment(arrayBuffer, decryptData);
23−@@ -52,10 +54,10 @@ async function getUrl(link, type, decryptData) {
29+ async function getUrl(link, type, decryptData) {
2430 try {
2531 const response = await fetch(link, { method: 'GET' });
2632 if (decryptData !== null) {
2733- return URL.createObjectURL(await getDecryptedBlob(response, type, decryptData));
28−+ return fileReader.readAsDataURL(await getDecryptedBlob(response, type, decryptData));
34++ return await getDataUrl(await getDecryptedBlob(response, type, decryptData));
2935 }
3036 const blob = await response.blob();
3137- return URL.createObjectURL(blob);
32−+ return fileReader.readAsDataURL(blob);
38++ return await getDataUrl(blob);
3339 } catch (e) {
3440 return link;
3541 }