do presence announcement only after complete page load

This commit is contained in:
Florian Dold 2017-06-02 02:14:40 +02:00
parent 29b107f937
commit a6035dd4c7
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B

View File

@ -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;
}
onceOnComplete(() => {
if (document.documentElement.getAttribute("data-taler-nojs")) {
const onload = () => {
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();