diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/wxBackend.ts | 63 |
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; |