diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src')
-rw-r--r-- | packages/taler-wallet-webextension/src/platform/api.ts | 6 | ||||
-rw-r--r-- | packages/taler-wallet-webextension/src/wxBackend.ts | 30 |
2 files changed, 20 insertions, 16 deletions
diff --git a/packages/taler-wallet-webextension/src/platform/api.ts b/packages/taler-wallet-webextension/src/platform/api.ts index faf0f2820..57e7c51f4 100644 --- a/packages/taler-wallet-webextension/src/platform/api.ts +++ b/packages/taler-wallet-webextension/src/platform/api.ts @@ -17,10 +17,10 @@ import { CoreApiResponse, TalerUri, - WalletNotification + WalletNotification, + WalletRunConfig } from "@gnu-taler/taler-util"; import { - WalletConfig, WalletOperations } from "@gnu-taler/taler-wallet-core"; import { @@ -108,7 +108,7 @@ export interface WalletWebExVersion { version: string; } -type F = WalletConfig["features"]; +type F = WalletRunConfig["features"]; type kf = keyof F; type WebexWalletConfig = { [P in keyof F as `wallet${Capitalize<P>}`]: F[P]; diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts index 2753d57b4..0801d2ab0 100644 --- a/packages/taler-wallet-webextension/src/wxBackend.ts +++ b/packages/taler-wallet-webextension/src/wxBackend.ts @@ -248,20 +248,25 @@ async function reinitWallet(): Promise<void> { } currentDatabase = undefined; // setBadgeText({ text: "" }); - let httpLib: HttpRequestLibrary; let cryptoWorker; let timer; + const httpFactory = (): HttpRequestLibrary => { + if (platform.useServiceWorkerAsBackgroundProcess()) { + return new ServiceWorkerHttpLib({ + // enableThrottling: false, + }); + } else { + return new BrowserHttpLib({ + // enableThrottling: false, + }); + } + }; + if (platform.useServiceWorkerAsBackgroundProcess()) { - httpLib = new ServiceWorkerHttpLib({ - // enableThrottling: false, - }); cryptoWorker = new SynchronousCryptoWorkerFactoryPlain(); timer = new SetTimeoutTimerAPI(); } else { - httpLib = new BrowserHttpLib({ - // enableThrottling: false, - }); // We could (should?) use the BrowserCryptoWorkerFactory here, // but right now we don't, to have less platform differences. // cryptoWorker = new BrowserCryptoWorkerFactory(); @@ -273,20 +278,19 @@ async function reinitWallet(): Promise<void> { logger.info("Setting up wallet"); const wallet = await Wallet.create( indexedDB as any, - httpLib as any, + httpFactory as any, timer, cryptoWorker, - { + ); + try { + await wallet.handleCoreApiRequest("initWallet", "native-init", { testing: { emitObservabilityEvents: true, }, features: { allowHttp: settings.walletAllowHttp, }, - }, - ); - try { - await wallet.handleCoreApiRequest("initWallet", "native-init", {}); + }); } catch (e) { logger.error("could not initialize wallet", e); walletInit.reject(e); |