aboutsummaryrefslogtreecommitdiff
path: root/extension/background/messaging.ts
diff options
context:
space:
mode:
Diffstat (limited to 'extension/background/messaging.ts')
-rw-r--r--extension/background/messaging.ts130
1 files changed, 0 insertions, 130 deletions
diff --git a/extension/background/messaging.ts b/extension/background/messaging.ts
deleted file mode 100644
index d95c4bfb5..000000000
--- a/extension/background/messaging.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- This file is part of TALER
- (C) 2016 GNUnet e.V.
-
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, 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.
- * @module Messaging
- * @author Florian Dold
- */
-
-"use strict";
-
-function makeHandlers(wallet) {
- return {
- ["balances"]: function(db, detail, sendResponse) {
- wallet.getBalances().then(sendResponse);
- return true;
- },
- ["dump-db"]: function(db, detail, sendResponse) {
- exportDb(db).then(sendResponse);
- return true;
- },
- ["reset"]: function(db, detail, sendResponse) {
- let tx = db.transaction(db.objectStoreNames, 'readwrite');
- for (let i = 0; i < db.objectStoreNames.length; i++) {
- tx.objectStore(db.objectStoreNames[i]).clear();
- }
- indexedDB.deleteDatabase(DB_NAME);
- chrome.browserAction.setBadgeText({text: ""});
- console.log("reset done");
- // Response is synchronous
- return false;
- },
- ["confirm-reserve"]: function(db, detail, sendResponse) {
- // TODO: make it a checkable
- let req: ConfirmReserveRequest = {
- field_amount: detail.field_amount,
- field_mint: detail.field_mint,
- field_reserve_pub: detail.field_reserve_pub,
- post_url: detail.post_url,
- mint: detail.mint,
- amount_str: detail.amount_str
- };
- wallet.confirmReserve(req)
- .then((resp) => {
- if (resp.success) {
- resp.backlink = chrome.extension.getURL(
- "pages/reserve-success.html");
- }
- sendResponse(resp);
- });
- return true;
- },
- ["confirm-pay"]: function(db, detail, sendResponse) {
- wallet.confirmPay(detail.offer, detail.merchantPageUrl)
- .then(() => {
- sendResponse({success: true})
- })
- .catch((e) => {
- sendResponse({error: e.message});
- });
- return true;
- },
- ["execute-payment"]: function(db, detail, sendResponse) {
- wallet.doPayment(detail.H_contract)
- .then((r) => {
- sendResponse({
- success: true,
- payUrl: r.payUrl,
- payReq: r.payReq
- });
- })
- .catch((e) => {
- sendResponse({success: false, error: e.message});
- });
- // async sendResponse
- return true;
- }
- };
-}
-
-class ChromeBadge {
- setText(s: string) {
- chrome.browserAction.setBadgeText({text: s});
- }
-
- setColor(c: string) {
- chrome.browserAction.setBadgeBackgroundColor({color: c});
- }
-}
-
-
-function wxMain() {
- chrome.browserAction.setBadgeText({text: ""});
-
- openTalerDb().then((db) => {
- let http = new BrowserHttpLib();
- let badge = new ChromeBadge();
- let wallet = new Wallet(db, http, badge);
- let handlers = makeHandlers(wallet);
- wallet.updateBadge();
- chrome.runtime.onMessage.addListener(
- function(req, sender, onresponse) {
- if (req.type in handlers) {
- return handlers[req.type](db, req.detail, onresponse);
- }
- console.error(format("Request type {1} unknown, req {0}",
- JSON.stringify(req),
- req.type));
- return false;
- });
- });
-}
-
-wxMain(); \ No newline at end of file