taler-typescript-core

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

commit a6035dd4c74bd83a1eb0deb37fb7b22a2e97fd39
parent 29b107f93763420c5bc0cbde38c68e40e705ff38
Author: Florian Dold <florian.dold@gmail.com>
Date:   Fri,  2 Jun 2017 02:14:40 +0200

do presence announcement only after complete page load

Diffstat:
Msrc/webex/notify.ts | 25+++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/webex/notify.ts b/src/webex/notify.ts @@ -180,26 +180,35 @@ function handlePaymentResponse(maybeFoundResponse: QueryPaymentResult) { } +function onceOnComplete(cb: () => void) { + if (document.readyState === "complete") { + cb(); + } else { + document.addEventListener("readystatechange", () => { + if (document.readyState === "complete") { + cb(); + } + }); + } +} + + function init() { // Only place where we don't use the nicer RPC wrapper, since the wallet // backend might not be ready (during install, upgrade, etc.) chrome.runtime.sendMessage({type: "get-tab-cookie"}, (resp) => { + logVerbose && console.log("got response for get-tab-cookie"); if (chrome.runtime.lastError) { logVerbose && console.log("extension not yet ready"); window.setTimeout(init, 200); return; } - if (document.documentElement.getAttribute("data-taler-nojs")) { - const onload = () => { + onceOnComplete(() => { + if (document.documentElement.getAttribute("data-taler-nojs")) { initStyle(); setStyles(true); - }; - if (document.readyState === "complete") { - onload(); - } else { - document.addEventListener("DOMContentLoaded", onload); } - } + }); registerHandlers(); // Hack to know when the extension is unloaded const port = chrome.runtime.connect();