diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/api/browser.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/api/browser.ts | 30 |
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: ` |