From 5fd8943bd74ad579e602e8d88567823ff23c735a Mon Sep 17 00:00:00 2001 From: varjolintu Date: Wed, 11 Oct 2023 18:03:21 +0300 Subject: [PATCH] Move cancelTimeout() to the messageBuffer --- keepassxc-browser/background/client.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/keepassxc-browser/background/client.js b/keepassxc-browser/background/client.js index 0158790..546b960 100644 --- a/keepassxc-browser/background/client.js +++ b/keepassxc-browser/background/client.js @@ -75,8 +75,17 @@ const messageBuffer = { // return the first matching action from the buffer. getMessage(response) { const isError = Boolean(!response.nonce && response.error && response.errorCode); - return this.buffer.find(b => keepassClient.incrementedNonce(b.request.nonce) === response.nonce - || (isError && b.request?.action === response?.action)); + return this.buffer.find(message => { + if (keepassClient.incrementedNonce(message.request.nonce) === response.nonce + || (isError && message.request?.action === response?.action)) { + // Cancel timeout + if (message.enableTimeout) { + message.cancelTimeout(); + } + + return message; + }} + ); }, removeMessage(message) { @@ -155,10 +164,6 @@ keepassClient.handleNativeMessage = async function(response) { await navigator.locks.request('messageBuffer', async (lock) => { const message = messageBuffer.getMessage(response); if (message) { - if (message.enableTimeout) { - message.cancelTimeout(); - } - message.resolve(response); messageBuffer.removeMessage(message); return;