diff options
author | Jeffrey Burdges <burdges@gnunet.org> | 2017-08-29 13:41:58 +0200 |
---|---|---|
committer | Jeffrey Burdges <burdges@gnunet.org> | 2017-08-29 13:41:58 +0200 |
commit | 541256ca99875b6007cf6338f7593c8397053514 (patch) | |
tree | 662ca2ee4d1846401bdc826895ad7a8390d54f9a /src/webex/wxBackend.ts | |
parent | 33edef30acda54fc23ec1238d8de13c07a0c87a8 (diff) | |
parent | 52ebba90d6625f78105b94fb4f528bca829cb18f (diff) |
Merge branch 'master' of ssh://taler.net/wallet-webex
Diffstat (limited to 'src/webex/wxBackend.ts')
-rw-r--r-- | src/webex/wxBackend.ts | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/webex/wxBackend.ts b/src/webex/wxBackend.ts index 974bcb3c2..2f249af44 100644 --- a/src/webex/wxBackend.ts +++ b/src/webex/wxBackend.ts @@ -303,6 +303,26 @@ function handleMessage(sender: MessageSender, } return resp; } + case "log-and-display-error": + logging.storeReport(detail).then((reportUid) => { + const url = chrome.extension.getURL(`/src/webex/pages/error.html?reportUid=${reportUid}`); + if (detail.sameTab && sender && sender.tab && sender.tab.id) { + chrome.tabs.update(detail.tabId, { url }); + } else { + chrome.tabs.create({ url }); + } + }); + return; + case "get-report": + return logging.getReport(detail.reportUid); + case "accept-refund": + return needsWallet().acceptRefund(detail.refund_permissions); + case "get-purchase": + const contractTermsHash = detail.contractTermsHash; + if (!contractTermsHash) { + throw Error("contractTermsHash missing"); + } + return needsWallet().getPurchase(contractTermsHash); default: // Exhaustiveness check. // See https://www.typescriptlang.org/docs/handbook/advanced-types.html @@ -332,7 +352,7 @@ async function dispatch(req: any, sender: any, sendResponse: any): Promise<void> try { sendResponse({ error: "exception", - hint: e.message, + message: e.message, stack, }); } catch (e) { @@ -371,6 +391,9 @@ class ChromeNotifier implements Notifier { /** * Mapping from tab ID to payment information (if any). + * + * Used to pass information from an intercepted HTTP header to the content + * script on the page. */ const paymentRequestCookies: { [n: number]: any } = {}; @@ -392,6 +415,7 @@ function handleHttpPayment(headerList: chrome.webRequest.HttpHeader[], url: stri const fields = { contract_url: headers["x-taler-contract-url"], offer_url: headers["x-taler-offer-url"], + refund_url: headers["x-taler-refund-url"], }; const talerHeaderFound = Object.keys(fields).filter((x: any) => (fields as any)[x]).length !== 0; @@ -406,6 +430,7 @@ function handleHttpPayment(headerList: chrome.webRequest.HttpHeader[], url: stri const payDetail = { contract_url: fields.contract_url, offer_url: fields.offer_url, + refund_url: fields.refund_url, }; console.log("got pay detail", payDetail); |