aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/api/browser.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/api/browser.ts')
-rw-r--r--packages/taler-wallet-webextension/src/api/browser.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/src/api/browser.ts b/packages/taler-wallet-webextension/src/api/browser.ts
index bc50853fb..b69a49680 100644
--- a/packages/taler-wallet-webextension/src/api/browser.ts
+++ b/packages/taler-wallet-webextension/src/api/browser.ts
@@ -1,6 +1,36 @@
+function searchForTalerLinks(): string | undefined {
+ let found;
+ found = document.querySelector("a[href^='taler://'")
+ if (found) return found.toString()
+ found = document.querySelector("a[href^='taler+http://'")
+ if (found) return found.toString()
+ return undefined
+}
+
+async function getCurrentTab() {
+ let queryOptions = { active: true, currentWindow: true };
+ let [tab] = await chrome.tabs.query(queryOptions);
+ return tab;
+}
+
+
export async function findTalerUriInActiveTab(): Promise<string | undefined> {
+ if (chrome.runtime.getManifest().manifest_version === 3) {
+ // manifest v3
+ const tab = await getCurrentTab();
+ const res = await chrome.scripting.executeScript({
+ target: {
+ tabId: tab.id!,
+ allFrames: true,
+ } as any,
+ func: searchForTalerLinks,
+ args: []
+ })
+ return res[0].result
+ }
return new Promise((resolve, reject) => {
+ //manifest v2
chrome.tabs.executeScript(
{
code: `