From b7e6d941ec915a6999975bbb16b8fe8862723af6 Mon Sep 17 00:00:00 2001
From: Dominik Hebeler <dominik@suma-ev.de>
Date: Mon, 1 Jul 2024 13:13:03 +0200
Subject: [PATCH] gracefully handle errors in message handling

---
 CHANGELOG.md    |  3 ++-
 build/js/app.js | 11 ++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e0ceed..1f0bfbb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
 # v0.1.0.3
 
 * Fix: Broken link to help page for homomorphic encryption
-* Feature: Better localized links to MetaGer pages
\ No newline at end of file
+* Feature: Better localized links to MetaGer pages
+* Fix: Settings failed to save on Firefox for Android in some cases
\ No newline at end of file
diff --git a/build/js/app.js b/build/js/app.js
index e33072a..e028657 100644
--- a/build/js/app.js
+++ b/build/js/app.js
@@ -21,6 +21,9 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
   if (request.type == "settings_set" && request.hasOwnProperty("settings")) {
     settingsManager.set(request.settings).then(() => {
       sendResponse({ status: "ok" });
+    }).catch(error => {
+      console.trace(error);
+      sendResponse({ status: "error" });
     });
     return true;
   }
@@ -28,10 +31,16 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
     if (request.setting_key == "key") {
       tokenManager.store_key(null).then(() => {
         sendResponse({ status: "ok" });
+      }).catch(error => {
+        console.trace(error);
+        sendResponse({ status: "error" });
       });
     } else {
       settingsManager.remove(request.setting_key).then(() => {
         sendResponse({ status: "ok" });
+      }).catch(error => {
+        console.trace(error);
+        sendResponse({ status: "error" });
       });
     }
     return true;
@@ -40,7 +49,7 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
     tokenManager.prepare_token_auth(request.cost).then(() => {
       sendResponse({ status: "ok" });
     }).catch(error => {
-      console.error(error);
+      console.trace(error);
       sendResponse({ status: "error" });
     });
     return true;
-- 
GitLab