aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/platform
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-12-20 15:23:33 -0300
committerSebastian <sebasjm@gmail.com>2022-12-20 15:23:33 -0300
commita160f3151440106f5dcee11e2c3af2a4d8ed036e (patch)
treee18a7fde533c98aafdb831cdb220163371ca6752 /packages/taler-wallet-webextension/src/platform
parent1fc4456f7a595f85be28320180fd4315a7c449fc (diff)
downloadwallet-core-a160f3151440106f5dcee11e2c3af2a4d8ed036e.tar.xz
fix #7291
Diffstat (limited to 'packages/taler-wallet-webextension/src/platform')
-rw-r--r--packages/taler-wallet-webextension/src/platform/chrome.ts39
1 files changed, 27 insertions, 12 deletions
diff --git a/packages/taler-wallet-webextension/src/platform/chrome.ts b/packages/taler-wallet-webextension/src/platform/chrome.ts
index aac3b546c..7785e19ef 100644
--- a/packages/taler-wallet-webextension/src/platform/chrome.ts
+++ b/packages/taler-wallet-webextension/src/platform/chrome.ts
@@ -311,14 +311,17 @@ async function sendMessageToWalletBackground(
chrome.runtime.sendMessage(
{ operation, payload, id: `id_${i++ % 1000}` },
(backgroundResponse) => {
- logger.trace("BUG: got response from background", backgroundResponse);
+ logger.trace(
+ "BUG: got response from background",
+ backgroundResponse,
+ chrome.runtime.lastError,
+ );
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError.message);
+ } else {
+ resolve(backgroundResponse);
}
- // const apiResponse = JSON.parse(resp)
- resolve(backgroundResponse);
-
// return true to keep the channel open
return true;
},
@@ -355,13 +358,21 @@ function sendMessageToAllChannels(message: MessageFromBackend): void {
function registerAllIncomingConnections(): void {
chrome.runtime.onConnect.addListener((port) => {
- allPorts.push(port);
- port.onDisconnect.addListener((discoPort) => {
- const idx = allPorts.indexOf(discoPort);
- if (idx >= 0) {
- allPorts.splice(idx, 1);
- }
- });
+ try {
+ allPorts.push(port);
+ port.onDisconnect.addListener((discoPort) => {
+ try {
+ const idx = allPorts.indexOf(discoPort);
+ if (idx >= 0) {
+ allPorts.splice(idx, 1);
+ }
+ } catch (e) {
+ logger.error("error trying to remove connection", e);
+ }
+ });
+ } catch (e) {
+ logger.error("error trying to save incoming connection", e);
+ }
});
}
@@ -375,7 +386,11 @@ function listenToAllChannels(
chrome.runtime.onMessage.addListener((m, s, c) => {
cb(m, s, (apiResponse) => {
logger.trace("BUG: sending response to client", apiResponse);
- c(apiResponse);
+ try {
+ c(apiResponse);
+ } catch (e) {
+ logger.error("wallet operation ended with error", e);
+ }
});
// keep the connection open