diff --git a/packages/taler-wallet-webextension/dev-html/.gitignore b/packages/taler-wallet-webextension/dev-html/.gitignore
deleted file mode 100644
index c4f051f4f..000000000
--- a/packages/taler-wallet-webextension/dev-html/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/mocha.css
-/mocha.js
-/mocha.js.map
-/manifest.json
diff --git a/packages/taler-wallet-webextension/dev-html/index.html b/packages/taler-wallet-webextension/dev-html/index.html
deleted file mode 100644
index 4b7fe34e8..000000000
--- a/packages/taler-wallet-webextension/dev-html/index.html
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
- open local bank
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/taler-wallet-webextension/src/spa/index.html b/packages/taler-wallet-webextension/src/spa/index.html
new file mode 100644
index 000000000..f352c7bf4
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/spa/index.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/taler-wallet-webextension/src/spa/manifest.json b/packages/taler-wallet-webextension/src/spa/manifest.json
new file mode 100644
index 000000000..d871bf7e8
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/spa/manifest.json
@@ -0,0 +1,82 @@
+{
+ "name": "GNU Taler Wallet",
+ "description": "Privacy preserving and transparent payments",
+ "author": "GNU Taler Developers",
+ "version": "0.9.3.13",
+ "version_name": "0.9.3-dev.13",
+ "icons": {
+ "16": "static/img/taler-logo-16.png",
+ "19": "static/img/taler-logo-19.png",
+ "32": "static/img/taler-logo-32.png",
+ "38": "static/img/taler-logo-38.png",
+ "48": "static/img/taler-logo-48.png",
+ "64": "static/img/taler-logo-64.png",
+ "128": "static/img/taler-logo-128.png",
+ "256": "static/img/taler-logo-256.png",
+ "512": "static/img/taler-logo-512.png"
+ },
+ "manifest_version": 3,
+ "minimum_chrome_version": "88",
+ "permissions": [
+ "unlimitedStorage",
+ "storage",
+ "activeTab",
+ "scripting",
+ "declarativeContent",
+ "alarms"
+ ],
+ "commands": {
+ "_execute_action": {
+ "suggested_key": {
+ "default": "Alt+W"
+ }
+ }
+ },
+ "content_scripts": [
+ {
+ "id": "taler-wallet-interaction",
+ "matches": [
+ "file://*/*",
+ "http://*/*",
+ "https://*/*"
+ ],
+ "js": [
+ "dist/taler-wallet-interaction-loader.js"
+ ]
+ }
+ ],
+ "web_accessible_resources": [
+ {
+ "resources": [
+ "static/wallet.html",
+ "dist/taler-wallet-interaction-loader.js.map",
+ "dist/taler-wallet-interaction-loader.js",
+ "dist/taler-wallet-interaction-support.js.map",
+ "dist/taler-wallet-interaction-support.js"
+ ],
+ "matches": [
+ "https://*/*",
+ "http://*/*",
+ "file://*/*"
+ ]
+ }
+ ],
+ "action": {
+ "default_icon": {
+ "16": "static/img/taler-logo-16.png",
+ "19": "static/img/taler-logo-19.png",
+ "32": "static/img/taler-logo-32.png",
+ "38": "static/img/taler-logo-38.png",
+ "48": "static/img/taler-logo-48.png",
+ "64": "static/img/taler-logo-64.png",
+ "128": "static/img/taler-logo-128.png",
+ "256": "static/img/taler-logo-256.png",
+ "512": "static/img/taler-logo-512.png"
+ },
+ "default_title": "GNU Taler Wallet",
+ "default_popup": "static/popup.html"
+ },
+ "background": {
+ "service_worker": "service_worker.js"
+ }
+}
diff --git a/packages/taler-wallet-webextension/dev-html/popup.html b/packages/taler-wallet-webextension/src/spa/popup.html
similarity index 81%
rename from packages/taler-wallet-webextension/dev-html/popup.html
rename to packages/taler-wallet-webextension/src/spa/popup.html
index 93a886d54..34d1d019c 100644
--- a/packages/taler-wallet-webextension/dev-html/popup.html
+++ b/packages/taler-wallet-webextension/src/spa/popup.html
@@ -29,8 +29,8 @@
}
-
-
+
+
diff --git a/packages/taler-wallet-webextension/src/spa/service_worker.js b/packages/taler-wallet-webextension/src/spa/service_worker.js
new file mode 100644
index 000000000..38064e245
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/spa/service_worker.js
@@ -0,0 +1,11 @@
+/* eslint-disable no-undef */
+/**
+ * Wrapper to catch any initialization error and show it in the logs
+ */
+try {
+ importScripts("dist/background.js");
+ self.skipWaiting();
+ console.log("SERVICE WORKER init: ok");
+} catch (e) {
+ console.error("SERVICE WORKER failed:", e);
+}
diff --git a/packages/taler-wallet-webextension/dev-html/static/font/import.css b/packages/taler-wallet-webextension/src/spa/static/font/import.css
similarity index 100%
rename from packages/taler-wallet-webextension/dev-html/static/font/import.css
rename to packages/taler-wallet-webextension/src/spa/static/font/import.css
diff --git a/packages/taler-wallet-webextension/dev-html/static/font/roboto-italic-400.ttf b/packages/taler-wallet-webextension/src/spa/static/font/roboto-italic-400.ttf
similarity index 100%
rename from packages/taler-wallet-webextension/dev-html/static/font/roboto-italic-400.ttf
rename to packages/taler-wallet-webextension/src/spa/static/font/roboto-italic-400.ttf
diff --git a/packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-300.tff b/packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-300.tff
similarity index 100%
rename from packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-300.tff
rename to packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-300.tff
diff --git a/packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-400.ttf b/packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-400.ttf
similarity index 100%
rename from packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-400.ttf
rename to packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-400.ttf
diff --git a/packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-500.ttf b/packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-500.ttf
similarity index 100%
rename from packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-500.ttf
rename to packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-500.ttf
diff --git a/packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-700.ttf b/packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-700.ttf
similarity index 100%
rename from packages/taler-wallet-webextension/dev-html/static/font/roboto-normal-700.ttf
rename to packages/taler-wallet-webextension/src/spa/static/font/roboto-normal-700.ttf
diff --git a/packages/taler-wallet-webextension/dev-html/stories.html b/packages/taler-wallet-webextension/src/spa/stories.html
similarity index 65%
rename from packages/taler-wallet-webextension/dev-html/stories.html
rename to packages/taler-wallet-webextension/src/spa/stories.html
index b07c4bd1c..f18307669 100644
--- a/packages/taler-wallet-webextension/dev-html/stories.html
+++ b/packages/taler-wallet-webextension/src/spa/stories.html
@@ -2,9 +2,9 @@
Stories
-
+
-
+
diff --git a/packages/taler-wallet-webextension/dev-html/tests.html b/packages/taler-wallet-webextension/src/spa/tests.html
similarity index 77%
rename from packages/taler-wallet-webextension/dev-html/tests.html
rename to packages/taler-wallet-webextension/src/spa/tests.html
index 4b3ec93b5..383f13d03 100644
--- a/packages/taler-wallet-webextension/dev-html/tests.html
+++ b/packages/taler-wallet-webextension/src/spa/tests.html
@@ -12,8 +12,8 @@
-
-
+
+
+