diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/wxBackend.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/wxBackend.ts | 114 |
1 files changed, 60 insertions, 54 deletions
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts index 60b071716..f3d2375c5 100644 --- a/packages/taler-wallet-webextension/src/wxBackend.ts +++ b/packages/taler-wallet-webextension/src/wxBackend.ts @@ -27,18 +27,12 @@ import { LogLevel, Logger, TalerErrorCode, - WalletDiagnostics, - WalletNotification, getErrorDetailFromException, makeErrorDetail, - parseTalerUri, setGlobalLogLevelFromString, - setLogLevelFromString, + setLogLevelFromString } from "@gnu-taler/taler-util"; -import { - ServiceWorkerHttpLib, - BrowserHttpLib, -} from "@gnu-taler/web-util/browser"; +import { HttpRequestLibrary } from "@gnu-taler/taler-util/http"; import { DbAccess, OpenedPromise, @@ -52,11 +46,14 @@ import { importDb, openPromise, } from "@gnu-taler/taler-wallet-core"; +import { + BrowserHttpLib, + ServiceWorkerHttpLib, +} from "@gnu-taler/web-util/browser"; import { MessageFromFrontend, MessageResponse } from "./platform/api.js"; import { platform } from "./platform/background.js"; import { ExtensionOperations } from "./taler-wallet-interaction-loader.js"; -import { BackgroundOperations, ExtendedPermissionsResponse } from "./wxApi.js"; -import { HttpRequestLibrary } from "@gnu-taler/taler-util/http"; +import { BackgroundOperations } from "./wxApi.js"; /** * Currently active wallet instance. Might be unloaded and @@ -126,6 +123,7 @@ async function sum(ns: Array<number>): Promise<number> { const extensionHandlers: ExtensionHandlerType = { isInjectionEnabled, + isAutoOpenEnabled, }; async function isInjectionEnabled(): Promise<boolean> { @@ -133,9 +131,9 @@ async function isInjectionEnabled(): Promise<boolean> { return settings.injectTalerSupport === true; } -async function isHeaderListenerEnabled(): Promise<boolean> { +async function isAutoOpenEnabled(): Promise<boolean> { const settings = await platform.getSettingsFromStorage(); - return settings.autoOpenByHeader === true; + return settings.autoOpen === true; } const backendHandlers: BackendHandlerType = { @@ -144,14 +142,12 @@ 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 = await platform.containsTalerHeaderListener(); +// return { newValue: result }; +// } async function setLoggingLevel({ tag, @@ -353,45 +349,55 @@ export async function wxMain(): Promise<void> { } catch (e) { console.error(e); } - // 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(); - }); - 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() - } - } + // platform.registerDeclarativeRedirect(); + // if (false) { + /** + * this is not working reliable on chrome, just + * intercepts queries after the user clicks the popups + * 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() + // } + // } + // 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(); + // }); + + // } } -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) { +// platform.registerTalerHeaderListener(); +// return { newValue: true }; +// } - 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 }; +// } |