From d0fdcbc4d7f2a8eb093fd13c1ade90d828f4190a Mon Sep 17 00:00:00 2001 From: Ximi1970 Date: Sun, 31 Aug 2025 18:50:07 +0200 Subject: [PATCH] Catch unknown message id --- webext/background.js | 10 ++++++++++ webext/js/defaults.js | 23 ++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/webext/background.js b/webext/background.js index 6b9a378..c366c1a 100644 --- a/webext/background.js +++ b/webext/background.js @@ -141,6 +141,10 @@ SysTrayX.Messaging = { SysTrayX.Messaging.listenerFolderDeleted ); + browser.folders.onUpdated.addListener( + SysTrayX.Messaging.listenerFolderUpdated + ); + // Try to catch the window state browser.windows.onFocusChanged.addListener(SysTrayX.Window.focusChanged); }, @@ -248,6 +252,7 @@ SysTrayX.Messaging = { //console.debug("listenerFolderInfoChanged: folder: " + JSON.stringify(folder)); //console.debug("listenerFolderInfoChanged: folderinfo: " + JSON.stringify(folderInfo)); //console.debug("listenerFolderInfoChanged: Cache: " + SysTrayX.Messaging.folderInfoChangeCache.length ); + //console.debug("listenerFolderInfoChanged: apiCountMethod: " + JSON.stringify(SysTrayX.Messaging.apiCountMethod)); if (SysTrayX.Messaging.startupDelayFinished) { if (SysTrayX.Info.browserInfo.majorVersion < 115 || SysTrayX.Messaging.apiCountMethod === "false") { @@ -278,6 +283,11 @@ SysTrayX.Messaging = { deleteFolderFromFilters(deletedFolder); }, + listenerFolderUpdated: async function (origFolder, updatedFolder) { +// console.debug("listenerFolderUpdated: origFolder: " + JSON.stringify(origFolder)); +// console.debug("listenerFolderUpdated: updatedFolder: " + JSON.stringify(updatedFolder)); + }, + showHideForceCloseButton: function () { if (SysTrayX.Messaging.closeType === "2" || SysTrayX.Messaging.closeType === "4") { // Activate the extra close button when all to tray/taskbar is selected diff --git a/webext/js/defaults.js b/webext/js/defaults.js index 379dce0..85e61a4 100644 --- a/webext/js/defaults.js +++ b/webext/js/defaults.js @@ -667,18 +667,23 @@ const collectUnreadMail = async () => { for (let i = 0; i < messages.length; ++i) { const message = messages[i]; - const getHeaderPromise = (messageId) => - new Promise((res) => res(messenger.messages.get(messageId))); + const getHeaderPromise = (messageId) => { + const promise = new Promise((res) => res(messenger.messages.get(messageId))); + promise.catch( (error) => { + //console.error("Catch error: " + error); + return undefined; + }); + } const header = await getHeaderPromise(message.id); - //console.debug("collectUnreadMail: header" + JSON.stringify(header)); + if (header !== undefined) { + if (header.read === false && + (header.new === undefined || header.new === true) && + header.headerMessageId !== "") { + newMessages.push(message); - if (header.read === false && - (header.new === undefined || header.new === true) && - header.headerMessageId !== "") { - newMessages.push(message); - - //console.debug("collectUnreadMail: renew" + JSON.stringify(message)); + //console.debug("collectUnreadMail: renew" + JSON.stringify(message)); + } } }