gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: catch when wallet is not avai


From: gnunet
Subject: [taler-wallet-core] branch master updated: catch when wallet is not available
Date: Sat, 11 Nov 2023 22:24:15 +0100

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new e065472c9 catch when wallet is not available
e065472c9 is described below

commit e065472c97723c1c07e87a7371fb2e91470e53d9
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Sat Nov 11 18:24:08 2023 -0300

    catch when wallet is not available
---
 .../src/taler-wallet-interaction-loader.ts         | 56 +++++++++++++++-------
 1 file changed, 39 insertions(+), 17 deletions(-)

diff --git 
a/packages/taler-wallet-webextension/src/taler-wallet-interaction-loader.ts 
b/packages/taler-wallet-webextension/src/taler-wallet-interaction-loader.ts
index 10b1f521b..0d3d239e5 100644
--- a/packages/taler-wallet-webextension/src/taler-wallet-interaction-loader.ts
+++ b/packages/taler-wallet-webextension/src/taler-wallet-interaction-loader.ts
@@ -54,22 +54,30 @@ const rootElementIsHTML =
  */
 function listenToHeaderMutation() {
   new MutationObserver(async function (mutations) {
-    const autoOpen = await callBackground("isAutoOpenEnabled", undefined)
-    mutations.forEach((mut) => {
-      if (mut.type === "childList") {
-        mut.addedNodes.forEach((added) => {
-          if (added instanceof HTMLHeadElement) {
-            injectTalerSupportScript(added)
-          } else if (added instanceof HTMLMetaElement) {
-            const name = added.getAttribute("name")
-            if (!name) return;
-            if (autoOpen && name === "taler-uri") {
-              redirectToTalerActionHandler(added)
+    try {
+      const autoOpen = await callBackground("isAutoOpenEnabled", undefined)
+      mutations.forEach((mut) => {
+        if (mut.type === "childList") {
+          mut.addedNodes.forEach((added) => {
+            if (added instanceof HTMLHeadElement) {
+              injectTalerSupportScript(added)
+            } else if (added instanceof HTMLMetaElement) {
+              const name = added.getAttribute("name")
+              if (!name) return;
+              if (autoOpen && name === "taler-uri") {
+                redirectToTalerActionHandler(added)
+              }
             }
-          }
-        });
+          });
+        }
+      });
+    } catch (e) {
+      //disconnected
+      if (e instanceof TalerError) {
+        logger.debug(e)
       }
-    });
+    }
+
   }).observe(document, {
     childList: true,
     subtree: true,
@@ -105,7 +113,7 @@ const logger = {
     console.error(`${new Date().toISOString()} TALER`, ...msg),
 };
 
-// logger.debug = logger.info
+logger.debug = logger.info
 
 /**
  */
@@ -161,7 +169,7 @@ function createBridgeWithExtension() {
   window.addEventListener(
     "message",
     (event) => {
-      logger.debug("message received", event);
+      // logger.debug("message received", event.data);
       if (event.source !== window) {
         return;
       }
@@ -176,6 +184,10 @@ function createBridgeWithExtension() {
     },
     false,
   );
+  port.onDisconnect.addListener(function () {
+    // clean up when content script gets disconnected
+  })
+
 }
 
 export interface ExtensionOperations {
@@ -213,14 +225,24 @@ async function callBackground<Op extends keyof 
ExtensionOperations>(
   }
   return response.result as any;
 }
+
+
 let nextMessageIndex = 0;
+/**
+ * 
+ * @param message 
+ * @returns 
+ */
 async function sendMessageToBackground<Op extends keyof ExtensionOperations>(
   message: MessageFromExtension<Op>,
 ): Promise<MessageResponse> {
   const messageWithId = { ...message, id: `id_${nextMessageIndex++ % 1000}` };
 
+  if (!chrome.runtime.id) {
+    return 
Promise.reject(TalerError.fromDetail(TalerErrorCode.WALLET_CORE_NOT_AVAILABLE, 
{}))
+  }
   return new Promise<any>((resolve, reject) => {
-    // logger.trace("send operation to the wallet background", message);
+    logger.debug("send operation to the wallet background", message, 
chrome.runtime.id);
     let timedout = false;
     const timerId = setTimeout(() => {
       timedout = true;

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]