From a176c9148930eae42fc9bf6d5b973c68d6816295 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 5 Dec 2015 16:04:25 +0100 Subject: [PATCH] Make wallet handshake conform more to spec. --- extension/content_scripts/notify.js | 28 +++++++++++++++++++--------- testpages/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 index 4a5c47c01..4f399b7f9 100644 --- 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 index 1598cc046..0e9e784a0 100644 --- a/testpages/testpage_merchant.html +++ b/testpages/testpage_merchant.html @@ -2,12 +2,12 @@