aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wxBackend.ts63
1 files changed, 34 insertions, 29 deletions
diff --git a/src/wxBackend.ts b/src/wxBackend.ts
index 089526a43..a5b8c667f 100644
--- a/src/wxBackend.ts
+++ b/src/wxBackend.ts
@@ -14,41 +14,48 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
+/**
+ * Messaging for the WebExtensions wallet. Should contain
+ * parts that are specific for WebExtensions, but as little business
+ * logic as possible.
+ */
+
+/**
+ * Imports.
+ */
import {
- Wallet,
- OfferRecord,
Badge,
ConfirmReserveRequest,
- CreateReserveRequest
+ CreateReserveRequest,
+ OfferRecord,
+ Stores,
+ Wallet,
} from "./wallet";
-import { BrowserHttpLib } from "./http";
-import { Checkable } from "./checkable";
-import { AmountJson } from "./types";
-import Port = chrome.runtime.Port;
-import { Notifier } from "./types";
-import { Contract } from "./types";
+import {
+ AmountJson,
+ Contract,
+ Notifier,
+} from "./types";
import MessageSender = chrome.runtime.MessageSender;
import { ChromeBadge } from "./chromeBadge";
import * as logging from "./logging";
+import { Store, Index } from "./query";
+import { BrowserHttpLib } from "./http";
+import { Checkable } from "./checkable";
+import Port = chrome.runtime.Port;
import URI = require("urijs");
-"use strict";
const DB_NAME = "taler";
-const DB_VERSION = 17;
-
-import {Stores} from "./wallet";
-import {Store, Index} from "./query";
/**
- * Messaging for the WebExtensions wallet. Should contain
- * parts that are specific for WebExtensions, but as little business
- * logic as possible.
- *
- * @author Florian Dold
+ * Current database version, should be incremented
+ * each time we do incompatible schema changes on the database.
+ * In the future we might consider adding migration functions for
+ * each version increment.
*/
-
+const DB_VERSION = 17;
type Handler = (detail: any, sender: MessageSender) => Promise<any>;
@@ -466,10 +473,6 @@ function handleBankRequest(wallet: Wallet, headerList: chrome.webRequest.HttpHea
// no known headers found, not a taler request ...
}
-// Useful for debugging ...
-export let wallet: Wallet | undefined = undefined;
-export let badge: ChromeBadge | undefined = undefined;
-export let log = logging.log;
// Rate limit cache for executePayment operations, to break redirect loops
let rateLimitCache: { [n: number]: number } = {};
@@ -484,7 +487,7 @@ export async function wxMain() {
}
chrome.browserAction.setBadgeText({ text: "" });
- badge = new ChromeBadge();
+ const badge = new ChromeBadge();
chrome.tabs.query({}, function (tabs) {
for (let tab of tabs) {
@@ -566,14 +569,16 @@ export async function wxMain() {
console.error("could not open database", e);
return;
}
- let http = new BrowserHttpLib();
- let notifier = new ChromeNotifier();
+ const http = new BrowserHttpLib();
+ const notifier = new ChromeNotifier();
console.log("setting wallet");
- wallet = new Wallet(db, http, badge!, notifier);
+ const wallet = new Wallet(db, http, badge!, notifier);
+ // Useful for debugging in the background page.
+ (window as any).talerWallet = wallet;
// Handlers for messages coming directly from the content
// script on the page
- let handlers = makeHandlers(db, wallet!);
+ const handlers = makeHandlers(db, wallet!);
chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
dispatch(handlers, req, sender, sendResponse);
return true;