diff options
author | Sebastian <sebasjm@gmail.com> | 2023-12-15 00:45:01 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-12-15 00:45:01 -0300 |
commit | b99ef78dea6c43d430e3aad4c9f3f8cff0a06844 (patch) | |
tree | 48f824ffcf9828a6cdf2bf30cc2e2e646f532c39 /packages/taler-wallet-webextension/src/wxBackend.ts | |
parent | 834d87e48448cf5e4ac8f57333b6552a5d1d7334 (diff) | |
download | wallet-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.ts | 97 |
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 }; +} |