Make wallet handshake conform more to spec.

This commit is contained in:
Florian Dold 2015-12-05 16:04:25 +01:00
parent 1089b40b1c
commit a176c91489
2 changed files with 21 additions and 11 deletions

View File

@ -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");

View File

@ -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();