prevent embedding wallet pages in other web pages

This commit is contained in:
Florian Dold 2018-02-07 16:15:40 +01:00
parent 9b0cd71a4d
commit f1bef0473b
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
10 changed files with 120 additions and 87 deletions

View File

@ -73,7 +73,7 @@ const paths = {
"emscripten/taler-emscripten-lib.js", "emscripten/taler-emscripten-lib.js",
"img/icon.png", "img/icon.png",
"img/logo.png", "img/logo.png",
"src/**/*.{css,html}", "src/**/*.{js,css,html}",
], ],
// for the source distribution // for the source distribution
extra: [ extra: [

View File

@ -50,7 +50,7 @@
], ],
"web_accessible_resources": [ "web_accessible_resources": [
"src/*" "src/webex/pages/redirect.html"
], ],
"background": { "background": {

View File

@ -206,41 +206,41 @@ msgstr ""
msgid "%1$s being spent\n" msgid "%1$s being spent\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:309 #: src/webex/pages/popup.tsx:310
#, c-format #, c-format
msgid "Error: could not retrieve balance information." msgid "Error: could not retrieve balance information."
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:336 #: src/webex/pages/popup.tsx:337
#, c-format #, c-format
msgid "Payback" msgid "Payback"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:337 #: src/webex/pages/popup.tsx:338
#, c-format #, c-format
msgid "Return Electronic Cash to Bank Account" msgid "Return Electronic Cash to Bank Account"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:338 #: src/webex/pages/popup.tsx:339
#, c-format #, c-format
msgid "Manage Trusted Auditors and Exchanges" msgid "Manage Trusted Auditors and Exchanges"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:350 #: src/webex/pages/popup.tsx:351
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Bank requested reserve (%1$s) for\n" "Bank requested reserve (%1$s) for\n"
" %2$s.\n" " %2$s.\n"
msgstr "Bank bestätig anlegen der Reserve (%1$s) bei %2$s" msgstr "Bank bestätig anlegen der Reserve (%1$s) bei %2$s"
#: src/webex/pages/popup.tsx:360 #: src/webex/pages/popup.tsx:361
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Started to withdraw\n" "Started to withdraw\n"
" %1$s%2$sfrom%3$s(%4$s).\n" " %1$s%2$sfrom%3$s(%4$s).\n"
msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt"
#: src/webex/pages/popup.tsx:369 #: src/webex/pages/popup.tsx:370
#, fuzzy, c-format #, fuzzy, c-format
msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgid "Merchant%1$soffered%2$scontract%3$s.\n"
msgstr "" msgstr ""
@ -248,24 +248,24 @@ msgstr ""
" möchte einen Vertrag über %2$s\n" " möchte einen Vertrag über %2$s\n"
" mit Ihnen abschließen." " mit Ihnen abschließen."
#: src/webex/pages/popup.tsx:380 #: src/webex/pages/popup.tsx:381
#, fuzzy, c-format #, fuzzy, c-format
msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgid "Withdrew%1$sfrom%2$s(%3$s).\n"
msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt"
#: src/webex/pages/popup.tsx:390 #: src/webex/pages/popup.tsx:391
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Paid%1$sto merchant%2$s.\n" "Paid%1$sto merchant%2$s.\n"
"%3$s(%4$s)\n" "%3$s(%4$s)\n"
msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt"
#: src/webex/pages/popup.tsx:400 #: src/webex/pages/popup.tsx:401
#, c-format #, c-format
msgid "Merchant%1$sgave a refund over%2$s.\n" msgid "Merchant%1$sgave a refund over%2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:410 #: src/webex/pages/popup.tsx:411
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Merchant%1$sgave\n" "Merchant%1$sgave\n"
@ -276,17 +276,17 @@ msgstr ""
" möchte einen Vertrag über %2$s\n" " möchte einen Vertrag über %2$s\n"
" mit Ihnen abschließen." " mit Ihnen abschließen."
#: src/webex/pages/popup.tsx:420 #: src/webex/pages/popup.tsx:421
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:463 #: src/webex/pages/popup.tsx:464
#, c-format #, c-format
msgid "Error: could not retrieve event history" msgid "Error: could not retrieve event history"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:488 #: src/webex/pages/popup.tsx:489
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "Ihre Geldbörse verzeichnet keine Vorkommnisse." msgstr "Ihre Geldbörse verzeichnet keine Vorkommnisse."

View File

@ -206,63 +206,63 @@ msgstr ""
msgid "%1$s being spent\n" msgid "%1$s being spent\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:309 #: src/webex/pages/popup.tsx:310
#, c-format #, c-format
msgid "Error: could not retrieve balance information." msgid "Error: could not retrieve balance information."
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:336 #: src/webex/pages/popup.tsx:337
#, c-format #, c-format
msgid "Payback" msgid "Payback"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:337 #: src/webex/pages/popup.tsx:338
#, c-format #, c-format
msgid "Return Electronic Cash to Bank Account" msgid "Return Electronic Cash to Bank Account"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:338 #: src/webex/pages/popup.tsx:339
#, c-format #, c-format
msgid "Manage Trusted Auditors and Exchanges" msgid "Manage Trusted Auditors and Exchanges"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:350 #: src/webex/pages/popup.tsx:351
#, c-format #, c-format
msgid "" msgid ""
"Bank requested reserve (%1$s) for\n" "Bank requested reserve (%1$s) for\n"
" %2$s.\n" " %2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:360 #: src/webex/pages/popup.tsx:361
#, c-format #, c-format
msgid "" msgid ""
"Started to withdraw\n" "Started to withdraw\n"
" %1$s%2$sfrom%3$s(%4$s).\n" " %1$s%2$sfrom%3$s(%4$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:369 #: src/webex/pages/popup.tsx:370
#, c-format #, c-format
msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgid "Merchant%1$soffered%2$scontract%3$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:380 #: src/webex/pages/popup.tsx:381
#, c-format #, c-format
msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgid "Withdrew%1$sfrom%2$s(%3$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:390 #: src/webex/pages/popup.tsx:391
#, c-format #, c-format
msgid "" msgid ""
"Paid%1$sto merchant%2$s.\n" "Paid%1$sto merchant%2$s.\n"
"%3$s(%4$s)\n" "%3$s(%4$s)\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:400 #: src/webex/pages/popup.tsx:401
#, c-format #, c-format
msgid "Merchant%1$sgave a refund over%2$s.\n" msgid "Merchant%1$sgave a refund over%2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:410 #: src/webex/pages/popup.tsx:411
#, c-format #, c-format
msgid "" msgid ""
"Merchant%1$sgave\n" "Merchant%1$sgave\n"
@ -270,17 +270,17 @@ msgid ""
"%4$s%5$s" "%4$s%5$s"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:420 #: src/webex/pages/popup.tsx:421
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:463 #: src/webex/pages/popup.tsx:464
#, c-format #, c-format
msgid "Error: could not retrieve event history" msgid "Error: could not retrieve event history"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:488 #: src/webex/pages/popup.tsx:489
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "" msgstr ""

View File

@ -206,63 +206,63 @@ msgstr ""
msgid "%1$s being spent\n" msgid "%1$s being spent\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:309 #: src/webex/pages/popup.tsx:310
#, c-format #, c-format
msgid "Error: could not retrieve balance information." msgid "Error: could not retrieve balance information."
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:336 #: src/webex/pages/popup.tsx:337
#, c-format #, c-format
msgid "Payback" msgid "Payback"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:337 #: src/webex/pages/popup.tsx:338
#, c-format #, c-format
msgid "Return Electronic Cash to Bank Account" msgid "Return Electronic Cash to Bank Account"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:338 #: src/webex/pages/popup.tsx:339
#, c-format #, c-format
msgid "Manage Trusted Auditors and Exchanges" msgid "Manage Trusted Auditors and Exchanges"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:350 #: src/webex/pages/popup.tsx:351
#, c-format #, c-format
msgid "" msgid ""
"Bank requested reserve (%1$s) for\n" "Bank requested reserve (%1$s) for\n"
" %2$s.\n" " %2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:360 #: src/webex/pages/popup.tsx:361
#, c-format #, c-format
msgid "" msgid ""
"Started to withdraw\n" "Started to withdraw\n"
" %1$s%2$sfrom%3$s(%4$s).\n" " %1$s%2$sfrom%3$s(%4$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:369 #: src/webex/pages/popup.tsx:370
#, c-format #, c-format
msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgid "Merchant%1$soffered%2$scontract%3$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:380 #: src/webex/pages/popup.tsx:381
#, c-format #, c-format
msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgid "Withdrew%1$sfrom%2$s(%3$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:390 #: src/webex/pages/popup.tsx:391
#, c-format #, c-format
msgid "" msgid ""
"Paid%1$sto merchant%2$s.\n" "Paid%1$sto merchant%2$s.\n"
"%3$s(%4$s)\n" "%3$s(%4$s)\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:400 #: src/webex/pages/popup.tsx:401
#, c-format #, c-format
msgid "Merchant%1$sgave a refund over%2$s.\n" msgid "Merchant%1$sgave a refund over%2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:410 #: src/webex/pages/popup.tsx:411
#, c-format #, c-format
msgid "" msgid ""
"Merchant%1$sgave\n" "Merchant%1$sgave\n"
@ -270,17 +270,17 @@ msgid ""
"%4$s%5$s" "%4$s%5$s"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:420 #: src/webex/pages/popup.tsx:421
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:463 #: src/webex/pages/popup.tsx:464
#, c-format #, c-format
msgid "Error: could not retrieve event history" msgid "Error: could not retrieve event history"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:488 #: src/webex/pages/popup.tsx:489
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "" msgstr ""

View File

@ -206,63 +206,63 @@ msgstr ""
msgid "%1$s being spent\n" msgid "%1$s being spent\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:309 #: src/webex/pages/popup.tsx:310
#, c-format #, c-format
msgid "Error: could not retrieve balance information." msgid "Error: could not retrieve balance information."
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:336 #: src/webex/pages/popup.tsx:337
#, c-format #, c-format
msgid "Payback" msgid "Payback"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:337 #: src/webex/pages/popup.tsx:338
#, c-format #, c-format
msgid "Return Electronic Cash to Bank Account" msgid "Return Electronic Cash to Bank Account"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:338 #: src/webex/pages/popup.tsx:339
#, c-format #, c-format
msgid "Manage Trusted Auditors and Exchanges" msgid "Manage Trusted Auditors and Exchanges"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:350 #: src/webex/pages/popup.tsx:351
#, c-format #, c-format
msgid "" msgid ""
"Bank requested reserve (%1$s) for\n" "Bank requested reserve (%1$s) for\n"
" %2$s.\n" " %2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:360 #: src/webex/pages/popup.tsx:361
#, c-format #, c-format
msgid "" msgid ""
"Started to withdraw\n" "Started to withdraw\n"
" %1$s%2$sfrom%3$s(%4$s).\n" " %1$s%2$sfrom%3$s(%4$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:369 #: src/webex/pages/popup.tsx:370
#, c-format #, c-format
msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgid "Merchant%1$soffered%2$scontract%3$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:380 #: src/webex/pages/popup.tsx:381
#, c-format #, c-format
msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgid "Withdrew%1$sfrom%2$s(%3$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:390 #: src/webex/pages/popup.tsx:391
#, c-format #, c-format
msgid "" msgid ""
"Paid%1$sto merchant%2$s.\n" "Paid%1$sto merchant%2$s.\n"
"%3$s(%4$s)\n" "%3$s(%4$s)\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:400 #: src/webex/pages/popup.tsx:401
#, c-format #, c-format
msgid "Merchant%1$sgave a refund over%2$s.\n" msgid "Merchant%1$sgave a refund over%2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:410 #: src/webex/pages/popup.tsx:411
#, c-format #, c-format
msgid "" msgid ""
"Merchant%1$sgave\n" "Merchant%1$sgave\n"
@ -270,17 +270,17 @@ msgid ""
"%4$s%5$s" "%4$s%5$s"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:420 #: src/webex/pages/popup.tsx:421
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:463 #: src/webex/pages/popup.tsx:464
#, c-format #, c-format
msgid "Error: could not retrieve event history" msgid "Error: could not retrieve event history"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:488 #: src/webex/pages/popup.tsx:489
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "" msgstr ""

View File

@ -206,63 +206,63 @@ msgstr ""
msgid "%1$s being spent\n" msgid "%1$s being spent\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:309 #: src/webex/pages/popup.tsx:310
#, c-format #, c-format
msgid "Error: could not retrieve balance information." msgid "Error: could not retrieve balance information."
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:336 #: src/webex/pages/popup.tsx:337
#, c-format #, c-format
msgid "Payback" msgid "Payback"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:337 #: src/webex/pages/popup.tsx:338
#, c-format #, c-format
msgid "Return Electronic Cash to Bank Account" msgid "Return Electronic Cash to Bank Account"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:338 #: src/webex/pages/popup.tsx:339
#, c-format #, c-format
msgid "Manage Trusted Auditors and Exchanges" msgid "Manage Trusted Auditors and Exchanges"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:350 #: src/webex/pages/popup.tsx:351
#, c-format #, c-format
msgid "" msgid ""
"Bank requested reserve (%1$s) for\n" "Bank requested reserve (%1$s) for\n"
" %2$s.\n" " %2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:360 #: src/webex/pages/popup.tsx:361
#, c-format #, c-format
msgid "" msgid ""
"Started to withdraw\n" "Started to withdraw\n"
" %1$s%2$sfrom%3$s(%4$s).\n" " %1$s%2$sfrom%3$s(%4$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:369 #: src/webex/pages/popup.tsx:370
#, c-format #, c-format
msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgid "Merchant%1$soffered%2$scontract%3$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:380 #: src/webex/pages/popup.tsx:381
#, c-format #, c-format
msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgid "Withdrew%1$sfrom%2$s(%3$s).\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:390 #: src/webex/pages/popup.tsx:391
#, c-format #, c-format
msgid "" msgid ""
"Paid%1$sto merchant%2$s.\n" "Paid%1$sto merchant%2$s.\n"
"%3$s(%4$s)\n" "%3$s(%4$s)\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:400 #: src/webex/pages/popup.tsx:401
#, c-format #, c-format
msgid "Merchant%1$sgave a refund over%2$s.\n" msgid "Merchant%1$sgave a refund over%2$s.\n"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:410 #: src/webex/pages/popup.tsx:411
#, c-format #, c-format
msgid "" msgid ""
"Merchant%1$sgave\n" "Merchant%1$sgave\n"
@ -270,17 +270,17 @@ msgid ""
"%4$s%5$s" "%4$s%5$s"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:420 #: src/webex/pages/popup.tsx:421
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:463 #: src/webex/pages/popup.tsx:464
#, c-format #, c-format
msgid "Error: could not retrieve event history" msgid "Error: could not retrieve event history"
msgstr "" msgstr ""
#: src/webex/pages/popup.tsx:488 #: src/webex/pages/popup.tsx:489
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "" msgstr ""

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="/src/webex/pages/redirect.js"></script>
</head>
<body>
Redirecting to extension page ...
</body>
</html>

View File

@ -0,0 +1,12 @@
/**
* This is the entry point for redirects, and should be the only
* web-accessible resource declared in the manifest. This prevents
* malicious websites from embedding wallet pages in them.
*
* We still need this redirect page since a webRequest can only directly
* redirect to pages inside the extension that are a web-accessible resource.
*/
const myUrl = new URL(window.location.href);
window.location.replace(myUrl.searchParams.get("url"));

View File

@ -449,6 +449,21 @@ async function talerPay(fields: any, url: string, tabId: number): Promise<string
} }
function makeSyncWalletRedirect(url: string, params?: {[name: string]: string | undefined}): object {
const innerUrl = new URI(chrome.extension.getURL("/src/webex/pages/" + url));
if (params) {
for (const key in params) {
if (params[key]) {
innerUrl.addSearch(key, params[key]);
}
}
}
const outerUrl = new URI(chrome.extension.getURL("/src/webex/pages/redirect.html"));
outerUrl.addSearch("url", innerUrl);
return { redirectUrl: outerUrl.href() };
}
/** /**
* Handle a HTTP response that has the "402 Payment Required" status. * Handle a HTTP response that has the "402 Payment Required" status.
* In this callback we don't have access to the body, and must communicate via * In this callback we don't have access to the body, and must communicate via
@ -497,30 +512,22 @@ function handleHttpPayment(headerList: chrome.webRequest.HttpHeader[], url: stri
} }
// Synchronous fast path for new contract // Synchronous fast path for new contract
if (fields.contract_url) { if (fields.contract_url) {
const uri = new URI(chrome.extension.getURL("/src/webex/pages/confirm-contract.html")); return makeSyncWalletRedirect("confirm-contract.html", {
uri.addSearch("contractUrl", fields.contract_url); contractUrl: fields.contract_url,
if (fields.session_id) { sessionId: fields.session_id,
uri.addSearch("sessionId", fields.session_id); resourceUrl: fields.resource_url,
} });
if (fields.resource_url) {
uri.addSearch("resourceUrl", fields.resource_url);
}
return { redirectUrl: uri.href() };
} }
// Synchronous fast path for tip // Synchronous fast path for tip
if (fields.tip) { if (fields.tip) {
const uri = new URI(chrome.extension.getURL("/src/webex/pages/tip.html")); return makeSyncWalletRedirect("tip.html", { tip_token: fields.tip });
uri.query({ tip_token: fields.tip });
return { redirectUrl: uri.href() };
} }
// Synchronous fast path for refund // Synchronous fast path for refund
if (fields.refund_url) { if (fields.refund_url) {
console.log("processing refund"); console.log("processing refund");
const uri = new URI(chrome.extension.getURL("/src/webex/pages/refund.html")); return makeSyncWalletRedirect("refund.html", { refundUrl: fields.refund_url });
uri.query({ refundUrl: fields.refund_url });
return { redirectUrl: uri.href() };
} }
// We need to do some asynchronous operation, we can't directly redirect // We need to do some asynchronous operation, we can't directly redirect