From 34b787a79591fb5510aec40dfe49b5f86ca9b7fa Mon Sep 17 00:00:00 2001 From: Conan Yu <88705154+ConanYuxj@users.noreply.github.com> Date: Mon, 10 Nov 2025 06:39:25 +0800 Subject: [PATCH] fix: send image rendering blured (#3775) Co-authored-by: Yu <> Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com> Co-authored-by: Rajeh Taher --- src/util/Injected/Store.js | 2 ++ src/util/Injected/Utils.js | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/util/Injected/Store.js b/src/util/Injected/Store.js index 13b1e89..7204a17 100644 --- a/src/util/Injected/Store.js +++ b/src/util/Injected/Store.js @@ -62,6 +62,8 @@ exports.ExposeStore = () => { window.Store.SendDelete = window.require('WAWebDeleteChatAction'); window.Store.SendMessage = window.require('WAWebSendMsgChatAction'); window.Store.EditMessage = window.require('WAWebSendMessageEditAction'); + window.Store.MediaDataUtils = window.require('WAWebMediaDataUtils'); + window.Store.BlobCache = window.require('WAWebMediaInMemoryBlobCache'); window.Store.SendSeen = window.require('WAWebUpdateUnreadChatAction'); window.Store.User = window.require('WAWebUserPrefsMeUser'); window.Store.ContactMethods = window.require('WAWebContactGetters'); diff --git a/src/util/Injected/Utils.js b/src/util/Injected/Utils.js index 4182808..296d951 100644 --- a/src/util/Injected/Utils.js +++ b/src/util/Injected/Utils.js @@ -430,6 +430,10 @@ exports.LoadUtils = () => { isNewsletter: sendToChannel, }); + if (!mediaData.filehash) { + throw new Error('media-fault: sendToChat filehash undefined'); + } + if (forceVoice && mediaData.type === 'ptt') { const waveform = mediaObject.contentInfo.waveform; mediaData.waveform = @@ -445,7 +449,15 @@ exports.LoadUtils = () => { mediaData.renderableUrl = mediaData.mediaBlob.url(); mediaObject.consolidate(mediaData.toJSON()); + mediaData.mediaBlob.autorelease(); + const shouldUseMediaCache = window.Store.MediaDataUtils.shouldUseMediaCache( + window.Store.MediaTypes.castToV4(mediaObject.type) + ); + if (shouldUseMediaCache && mediaData.mediaBlob instanceof window.Store.OpaqueData) { + const formData = mediaData.mediaBlob.formData(); + window.Store.BlobCache.InMemoryMediaBlobCache.put(mediaObject.filehash, formData); + } const dataToUpload = { mimetype: mediaData.mimetype,