summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/wxBackend.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-12-15 00:45:01 -0300
committerSebastian <sebasjm@gmail.com>2023-12-15 00:45:01 -0300
commitb99ef78dea6c43d430e3aad4c9f3f8cff0a06844 (patch)
tree48f824ffcf9828a6cdf2bf30cc2e2e646f532c39 /packages/taler-wallet-webextension/src/wxBackend.ts
parent834d87e48448cf5e4ac8f57333b6552a5d1d7334 (diff)
downloadwallet-core-b99ef78dea6c43d430e3aad4c9f3f8cff0a06844.tar.gz
wallet-core-b99ef78dea6c43d430e3aad4c9f3f8cff0a06844.tar.bz2
wallet-core-b99ef78dea6c43d430e3aad4c9f3f8cff0a06844.zip
testing header listener
Diffstat (limited to 'packages/taler-wallet-webextension/src/wxBackend.ts')
-rw-r--r--packages/taler-wallet-webextension/src/wxBackend.ts97
1 files changed, 57 insertions, 40 deletions
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts
index f3d2375c5..a194de0ff 100644
--- a/packages/taler-wallet-webextension/src/wxBackend.ts
+++ b/packages/taler-wallet-webextension/src/wxBackend.ts
@@ -53,7 +53,7 @@ import {
import { MessageFromFrontend, MessageResponse } from "./platform/api.js";
import { platform } from "./platform/background.js";
import { ExtensionOperations } from "./taler-wallet-interaction-loader.js";
-import { BackgroundOperations } from "./wxApi.js";
+import { BackgroundOperations, ExtendedPermissionsResponse } from "./wxApi.js";
/**
* Currently active wallet instance. Might be unloaded and
@@ -142,12 +142,14 @@ const backendHandlers: BackendHandlerType = {
resetDb,
runGarbageCollector,
setLoggingLevel,
+ containsHeaderListener,
+ toggleHeaderListener,
};
-// async function containsHeaderListener(): Promise<ExtendedPermissionsResponse> {
-// const result = await platform.containsTalerHeaderListener();
-// return { newValue: result };
-// }
+async function containsHeaderListener(): Promise<ExtendedPermissionsResponse> {
+ const result = platform.containsTalerHeaderListener();
+ return { newValue: result };
+}
async function setLoggingLevel({
tag,
@@ -329,10 +331,12 @@ export async function wxMain(): Promise<void> {
logger.trace("starting");
const afterWalletIsInitialized = reinitWallet();
+ logger.trace("reload on new version");
platform.registerReloadOnNewVersion();
// Handlers for messages coming directly from the content
// script on the page
+ logger.trace("listen all channels");
platform.listenToAllChannels(async (message) => {
//wait until wallet is initialized
await afterWalletIsInitialized;
@@ -340,10 +344,12 @@ export async function wxMain(): Promise<void> {
return result;
});
+ logger.trace("register all incoming connections");
platform.registerAllIncomingConnections();
+ logger.trace("redirect if first start");
try {
- await platform.registerOnInstalled(() => {
+ platform.registerOnInstalled(() => {
platform.openWalletPage("/welcome");
});
} catch (e) {
@@ -358,46 +364,57 @@ export async function wxMain(): Promise<void> {
* which doesn't make sense, keeping it to make more tests
*/
- // if (await isHeaderListenerEnabled()) {
- // if (await platform.getPermissionsApi().containsHostPermissions()) {
- // try {
- // platform.registerTalerHeaderListener();
- // } catch (e) {
- // logger.error("could not register header listener", e);
- // }
- // } else {
- // await platform.getPermissionsApi().requestHostPermissions()
- // }
- // }
+ logger.trace("check taler header listener");
+ const enabled = platform.containsTalerHeaderListener()
+ if (!enabled) {
+ logger.info("header listener on")
+ const perm = await platform.getPermissionsApi().containsHostPermissions()
+ if (perm) {
+ logger.info("header listener allowed")
+ try {
+ platform.registerTalerHeaderListener();
+ } catch (e) {
+ logger.error("could not register header listener", e);
+ }
+ } else {
+ logger.info("header listener requested")
+ await platform.getPermissionsApi().requestHostPermissions()
+ }
+ }
// On platforms that support it, also listen to external
// modification of permissions.
- // platform.getPermissionsApi().addPermissionsListener((perm, lastError) => {
- // logger.info(`permission added: ${perm}`,)
- // if (lastError) {
- // logger.error(
- // `there was a problem trying to get permission ${perm}`,
- // lastError,
- // );
- // return;
- // }
- // platform.registerTalerHeaderListener();
- // });
+ platform.getPermissionsApi().addPermissionsListener((perm, lastError) => {
+ logger.info(`permission added: ${perm}`,)
+ if (lastError) {
+ logger.error(
+ `there was a problem trying to get permission ${perm}`,
+ lastError,
+ );
+ return;
+ }
+ platform.registerTalerHeaderListener();
+ });
// }
}
-// async function toggleHeaderListener(
-// newVal: boolean,
-// ): Promise<ExtendedPermissionsResponse> {
-// logger.trace("new extended permissions value", newVal);
-// if (newVal) {
-// platform.registerTalerHeaderListener();
-// return { newValue: true };
-// }
+async function toggleHeaderListener(
+ newVal: boolean,
+): Promise<ExtendedPermissionsResponse> {
+ logger.trace("new extended permissions value", newVal);
+ if (newVal) {
+ try {
+ platform.registerTalerHeaderListener();
+ return { newValue: true };
+ } catch (e) {
+ logger.error("FAIL to toggle",e)
+ }
+ return { newValue: false }
+ }
-// const rem = await platform.getPermissionsApi().removeHostPermissions();
-// logger.trace("permissions removed:", rem);
-// return { newValue: false };
-// }
+ const rem = await platform.getPermissionsApi().removeHostPermissions();
+ logger.trace("permissions removed:", rem);
+ return { newValue: false };
+}