diff options
-rw-r--r-- | extension/content_scripts/notify.js | 28 | ||||
-rw-r--r-- | 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 @@ <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(); |