taler-typescript-core

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

commit a176c9148930eae42fc9bf6d5b973c68d6816295
parent 1089b40b1c03fa69c0e73dd43e4281aa96388171
Author: Florian Dold <florian.dold@gmail.com>
Date:   Sat,  5 Dec 2015 16:04:25 +0100

Make wallet handshake conform more to spec.

Diffstat:
Mextension/content_scripts/notify.js | 28+++++++++++++++++++---------
Mtestpages/testpage_merchant.html | 4++--
2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/extension/content_scripts/notify.js b/extension/content_scripts/notify.js @@ -3,18 +3,28 @@ 'use strict'; -// Listen to messages from the backend. -chrome.runtime.onMessage.addListener( - function(request, sender, sendResponse) { - // do nothing, yet -}); - -if (document && document.body) -{ +// Install our handshake handlers only once the +// document is loaded +// TODO: change the spec to do it on the body +document.addEventListener("DOMContentLoaded", function(e) { + console.log("DOM fully loaded and parsed"); document.body.addEventListener('taler-checkout-probe', function(e) { let evt = new Event('taler-wallet-present'); document.body.dispatchEvent(evt); + console.log("merchant handshake done"); }); -} + document.body.addEventListener('taler-wire-probe', function(e) { + let evt = new Event('taler-wallet-present'); + document.body.dispatchEvent(evt); + console.log("bank handshake done"); + }); + document.body.addEventListener('taler-create-reserve', function(e) { + console.log("reserve creation " + JSON.stringify(e.detail)); + chrome.runtime.sendMessage({action:'new-reserve-request', detail:e.detail}, function(resp) { + console.log("got response"); + document.location.href = resp.url; + }); + }); +}); console.log("Taler wallet: content page loaded"); diff --git a/testpages/testpage_merchant.html b/testpages/testpage_merchant.html @@ -2,12 +2,12 @@ <script type="text/javascript"> "use strict"; function talerHandshake() { - document.addEventListener('taler-wallet-present', function(e) { + document.body.addEventListener('taler-wallet-present', function(e) { var x = document.getElementById('indicator'); x.innerHTML = 'found!'; }); var evt = new Event('taler-checkout-probe'); - document.dispatchEvent(evt); + document.body.dispatchEvent(evt); } window.onload = (e) => talerHandshake();