[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: DB reset must be async
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: DB reset must be async |
Date: |
Thu, 03 Feb 2022 14:36:52 +0100 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository wallet-core.
The following commit(s) were added to refs/heads/master by this push:
new 5844a306 DB reset must be async
5844a306 is described below
commit 5844a3065c8de9a676a19d13d8cf455f67b4ca10
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Feb 3 14:36:37 2022 +0100
DB reset must be async
---
packages/taler-wallet-core/src/db-utils.ts | 10 ++-
.../taler-wallet-webextension/src/wxBackend.ts | 87 ++++++++++++----------
2 files changed, 55 insertions(+), 42 deletions(-)
diff --git a/packages/taler-wallet-core/src/db-utils.ts
b/packages/taler-wallet-core/src/db-utils.ts
index 336c7de2..af337d57 100644
--- a/packages/taler-wallet-core/src/db-utils.ts
+++ b/packages/taler-wallet-core/src/db-utils.ts
@@ -168,6 +168,12 @@ export async function openTalerDatabase(
return new DbAccess(mainDbHandle, WalletStoresV1);
}
-export function deleteTalerDatabase(idbFactory: IDBFactory): void {
- idbFactory.deleteDatabase(TALER_DB_NAME);
+export async function deleteTalerDatabase(
+ idbFactory: IDBFactory,
+): Promise<void> {
+ return new Promise((resolve, reject) => {
+ const req = idbFactory.deleteDatabase(TALER_DB_NAME);
+ req.onerror = () => reject(req.error);
+ req.onsuccess = () => resolve();
+ });
}
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts
b/packages/taler-wallet-webextension/src/wxBackend.ts
index 085d7045..a242e8a0 100644
--- a/packages/taler-wallet-webextension/src/wxBackend.ts
+++ b/packages/taler-wallet-webextension/src/wxBackend.ts
@@ -30,12 +30,17 @@ import {
NotificationType,
TalerErrorCode,
TalerUriType,
- WalletDiagnostics
+ WalletDiagnostics,
} from "@gnu-taler/taler-util";
import {
- DbAccess, deleteTalerDatabase, makeErrorDetails, OpenedPromise,
+ DbAccess,
+ deleteTalerDatabase,
+ makeErrorDetails,
+ OpenedPromise,
openPromise,
- openTalerDatabase, Wallet, WalletStoresV1
+ openTalerDatabase,
+ Wallet,
+ WalletStoresV1,
} from "@gnu-taler/taler-wallet-core";
import { BrowserCryptoWorkerFactory } from "./browserCryptoWorkerFactory";
import { BrowserHttpLib } from "./browserHttpLib";
@@ -55,7 +60,7 @@ let currentWallet: Wallet | undefined;
let currentDatabase: DbAccess<typeof WalletStoresV1> | undefined;
/**
- * Last version if an outdated DB, if applicable.
+ * Last version of an outdated DB, if applicable.
*/
let outdatedDbVersion: number | undefined;
@@ -128,9 +133,12 @@ async function dispatch(
}
case "wxGetExtendedPermissions": {
const res = await new Promise((resolve, reject) => {
- getPermissionsApi().contains(getReadRequestPermissions(), (result:
boolean) => {
- resolve(result);
- });
+ getPermissionsApi().contains(
+ getReadRequestPermissions(),
+ (result: boolean) => {
+ resolve(result);
+ },
+ );
});
r = wrapResponse({ newValue: res });
break;
@@ -257,19 +265,15 @@ async function reinitWallet(): Promise<void> {
let cryptoWorker;
if (chrome.runtime.getManifest().manifest_version === 3) {
- httpLib = new ServiceWorkerHttpLib()
+ httpLib = new ServiceWorkerHttpLib();
cryptoWorker = new SynchronousCryptoWorkerFactory();
} else {
- httpLib = new BrowserHttpLib()
- cryptoWorker = new BrowserCryptoWorkerFactory()
+ httpLib = new BrowserHttpLib();
+ cryptoWorker = new BrowserCryptoWorkerFactory();
}
console.log("setting wallet");
- const wallet = await Wallet.create(
- currentDatabase,
- httpLib,
- cryptoWorker,
- );
+ const wallet = await Wallet.create(currentDatabase, httpLib, cryptoWorker);
try {
await wallet.handleCoreApiRequest("initWallet", "native-init", {});
} catch (e) {
@@ -402,30 +406,33 @@ function setupHeaderListener(): void {
// }
console.log("setting up header listener");
// Handlers for catching HTTP requests
- getPermissionsApi().contains(getReadRequestPermissions(), (result: boolean)
=> {
- if (
- "webRequest" in chrome &&
- "onHeadersReceived" in chrome.webRequest &&
- chrome.webRequest.onHeadersReceived.hasListener(headerListener)
- ) {
- chrome.webRequest.onHeadersReceived.removeListener(headerListener);
- }
- if (result) {
- console.log("actually adding listener");
- chrome.webRequest.onHeadersReceived.addListener(
- headerListener,
- { urls: ["<all_urls>"] },
- ["responseHeaders"]
- );
- }
- if ("webRequest" in chrome) {
- chrome.webRequest.handlerBehaviorChanged(() => {
- if (chrome.runtime.lastError) {
- console.error(chrome.runtime.lastError);
- }
- });
- }
- });
+ getPermissionsApi().contains(
+ getReadRequestPermissions(),
+ (result: boolean) => {
+ if (
+ "webRequest" in chrome &&
+ "onHeadersReceived" in chrome.webRequest &&
+ chrome.webRequest.onHeadersReceived.hasListener(headerListener)
+ ) {
+ chrome.webRequest.onHeadersReceived.removeListener(headerListener);
+ }
+ if (result) {
+ console.log("actually adding listener");
+ chrome.webRequest.onHeadersReceived.addListener(
+ headerListener,
+ { urls: ["<all_urls>"] },
+ ["responseHeaders"],
+ );
+ }
+ if ("webRequest" in chrome) {
+ chrome.webRequest.handlerBehaviorChanged(() => {
+ if (chrome.runtime.lastError) {
+ console.error(chrome.runtime.lastError);
+ }
+ });
+ }
+ },
+ );
}
/**
@@ -447,7 +454,7 @@ export async function wxMain(): Promise<void> {
chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
afterWalletIsInitialized.then(() => {
dispatch(req, sender, sendResponse);
- })
+ });
return true;
});
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-wallet-core] branch master updated: DB reset must be async,
gnunet <=