aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-11-19 23:03:58 +0100
committerFlorian Dold <florian.dold@gmail.com>2016-11-19 23:03:58 +0100
commit7b1511a243aa322462d29d15f19f9c2a8bfc67ef (patch)
tree1b8f0473a4ca25935c1e033de8ef1613826964b0 /src
parent65bbbf53ee73f7b72c1531d03d3943eb82b78e99 (diff)
circumvent chrome bug for JS-less wallet detection
Diffstat (limited to 'src')
-rw-r--r--src/content_scripts/notify.js3
-rw-r--r--src/content_scripts/notify.ts5
-rw-r--r--src/wxBackend.ts27
3 files changed, 35 insertions, 0 deletions
diff --git a/src/content_scripts/notify.js b/src/content_scripts/notify.js
index 43ded3d95..449697061 100644
--- a/src/content_scripts/notify.js
+++ b/src/content_scripts/notify.js
@@ -43,6 +43,9 @@ var TalerNotify;
console.error("Taler wallet lib not included, HTTP 402 payments not" +
" supported");
}
+ if (document.documentElement.getAttribute("data-taler-nojs")) {
+ document.dispatchEvent(new Event("taler-probe-result"));
+ }
function subst(url, H_contract) {
url = url.replace("${H_contract}", H_contract);
url = url.replace("${$}", "$");
diff --git a/src/content_scripts/notify.ts b/src/content_scripts/notify.ts
index 6fb4eae47..022eada07 100644
--- a/src/content_scripts/notify.ts
+++ b/src/content_scripts/notify.ts
@@ -43,6 +43,11 @@ namespace TalerNotify {
" supported");
}
+ if (document.documentElement.getAttribute("data-taler-nojs")) {
+ document.dispatchEvent(new Event("taler-probe-result"));
+ }
+
+
function subst(url: string, H_contract: string) {
url = url.replace("${H_contract}", H_contract);
url = url.replace("${$}", "$");
diff --git a/src/wxBackend.ts b/src/wxBackend.ts
index 6e637a2a6..e8f10cf5c 100644
--- a/src/wxBackend.ts
+++ b/src/wxBackend.ts
@@ -453,10 +453,37 @@ export function wxMain() {
chrome.tabs.executeScript(tab.id, { file: "/src/vendor/URI.js" });
chrome.tabs.executeScript(tab.id, { file: "/src/taler-wallet-lib.js" });
chrome.tabs.executeScript(tab.id, { file: "/src/content_scripts/notify.js" });
+ let code = `
+ if (document.documentElement.getAttribute("data-taler-nojs")) {
+ document.dispatchEvent(new Event("taler-probe-result"));
+ }
+ `;
+ chrome.tabs.executeScript(tab.id, { code, runAt: "document_idle" });
}
}
});
+ chrome.tabs.onUpdated.addListener((tabId, changeInfo) => {
+ if (changeInfo.status != 'complete') {
+ return;
+ }
+ chrome.tabs.get(tabId, (tab) => {
+ if (!tab.url || !tab.id) {
+ return;
+ }
+ let code = `
+ if (document.documentElement.getAttribute("data-taler-nojs")) {
+ document.dispatchEvent(new Event("taler-probe-result"));
+ }
+ `;
+ let run = () => {
+ chrome.tabs.executeScript(tab.id!, { code, runAt: "document_idle" });
+ };
+ chrome.extension.getBackgroundPage().setTimeout(run, 300);
+ });
+
+ });
+
chrome.extension.getBackgroundPage().setInterval(clearRateLimitCache, 5000);
Promise.resolve()