aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src')
-rw-r--r--packages/taler-wallet-webextension/src/platform/api.ts6
-rw-r--r--packages/taler-wallet-webextension/src/wxBackend.ts30
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);