taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 7b6706bee3cbecc84b330672ecdb5764d7d68756
Author: Florian Dold <florian.dold@gmail.com>
Date:   Wed, 25 Nov 2015 20:41:31 +0100

Add skeleton for WebExtensions wallet

Diffstat:
AREADME | 8++++++++
Aextension/background/wallet.js | 2++
Aextension/content_scripts/notify.js | 18++++++++++++++++++
Aextension/icons/taler-logo-24.png | 0
Aextension/manifest.json | 41+++++++++++++++++++++++++++++++++++++++++
Aextension/popup/reserves.html | 7+++++++
Aextension/popup/transactions.html | 7+++++++
Aextension/popup/wallet.html | 21+++++++++++++++++++++
Apack | 12++++++++++++
Aserve-testpages | 11+++++++++++
Atestpages/testpage_merchant.html | 16++++++++++++++++
11 files changed, 143 insertions(+), 0 deletions(-)

diff --git a/README b/README @@ -0,0 +1,8 @@ +Cross-browser Taler wallet written for the WebExtensions API. +See https://developer.mozilla.org/en-US/Add-ons/WebExtensions + +Installation +============ + +Run ./pack to create the taler-wallet.xpi file. + diff --git a/extension/background/wallet.js b/extension/background/wallet.js @@ -0,0 +1,2 @@ +// Nothing here yet. +// Eventually, the backend for the wallet will be implemented here. diff --git a/extension/content_scripts/notify.js b/extension/content_scripts/notify.js @@ -0,0 +1,18 @@ +// Script that is injected into pages in order to allow merchants pages to +// query the availability of Taler. + + +// Listen to messages from the backend. +chrome.runtime.onMessage.addListener( + function(request, sender, sendResponse) { + // do nothing, yet +}); + + +document.addEventListener('taler-checkout-probe', function(e) { + let evt = new Event('taler-wallet-present'); + document.dispatchEvent(evt); +}); + +console.log("Taler wallet: content page loaded"); + diff --git a/extension/icons/taler-logo-24.png b/extension/icons/taler-logo-24.png Binary files differ. diff --git a/extension/manifest.json b/extension/manifest.json @@ -0,0 +1,41 @@ +{ + "description": "Privacy preserving and transparent payments", + "manifest_version": 2, + "name": "Taler Wallet", + "version": "1.0", + + "applications": { + "gecko": { + "id": "devs@taler.net" + } + }, + + "permissions": [ + "http://*/*", + "https://*/*" + ], + + "browser_action": { + "default_icon": "icons/taler-logo-24.png", + "default_title": "Taler", + "default_popup": "popup/wallet.html" + }, + + "web_accessible_resources": [ + "popup/reserves.html", + "popup/wallet.html" + ], + + "content_scripts": [ + { + "matches": ["*://*/*"], + "js": ["content_scripts/notify.js"], + "run_at": "document_start" + } + ], + + "background": { + "scripts": ["background/wallet.js"] + } + +} diff --git a/extension/popup/reserves.html b/extension/popup/reserves.html @@ -0,0 +1,7 @@ +<!doctype html> + +<a href="javascript:history.back()">Back</a> + +<p /> + +Your reserves are listed here. diff --git a/extension/popup/transactions.html b/extension/popup/transactions.html @@ -0,0 +1,7 @@ +<!doctype html> + +<a href="javascript:history.back()">Back</a> + +<p /> + +Your past transactions are listed here. diff --git a/extension/popup/wallet.html b/extension/popup/wallet.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> + +<html> + <head> + <meta charset="utf-8"> + </head> + +<body> + This is the Taler wallet. + + <p /> + + <a href='reserves.html'>Reserves</a> + <a href='transactions.html'>Transaction History</a> + + <p /> + + Your balance will be displayed here. +</body> + +</html> diff --git a/pack b/pack @@ -0,0 +1,12 @@ +#!/bin/bash + +# Pack up the extension as an xpi file. + +set +x + +# directory where our script resides +mydir="$(dirname "$(readlink -f "$0")")" + +cd "$mydir/extension" + +exec zip -r ../taler-wallet.xpi * diff --git a/serve-testpages b/serve-testpages @@ -0,0 +1,11 @@ +#!/bin/bash + +# Start a web server on port 8000 to serve test pages for the wallet extension. + +set +x + +# directory where our script resides +mydir="$(dirname "$(readlink -f "$0")")" + +cd "$mydir/testpages/" +exec python3 -m http.server 8000 diff --git a/testpages/testpage_merchant.html b/testpages/testpage_merchant.html @@ -0,0 +1,16 @@ +<!doctype html> +<script type="text/javascript"> + "use strict"; + function talerHandshake() { + document.addEventListener('taler-wallet-present', function(e) { + var x = document.getElementById('indicator'); + x.innerHTML = 'found!'; + }); + var evt = new Event('taler-checkout-probe'); + document.dispatchEvent(evt); + } + + window.onload = (e) => talerHandshake(); +</script> + +Waiting for Taler wallet ... <span id='indicator'></span>