From a6035dd4c74bd83a1eb0deb37fb7b22a2e97fd39 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 2 Jun 2017 02:14:40 +0200 Subject: do presence announcement only after complete page load --- src/webex/notify.ts | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/webex/notify.ts b/src/webex/notify.ts index 09c5ae002..51abdb0e0 100644 --- 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(); -- cgit v1.2.3