From b34f3568e8c9dde73f11583a6b46ef1509990397 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 18 Apr 2023 10:47:53 -0300 Subject: check if the script should be injected remove header listener --- .../src/platform/firefox.ts | 42 +++++++++++++++------- 1 file changed, 30 insertions(+), 12 deletions(-) (limited to 'packages/taler-wallet-webextension/src/platform/firefox.ts') diff --git a/packages/taler-wallet-webextension/src/platform/firefox.ts b/packages/taler-wallet-webextension/src/platform/firefox.ts index 7f6980be7..01848e1ab 100644 --- a/packages/taler-wallet-webextension/src/platform/firefox.ts +++ b/packages/taler-wallet-webextension/src/platform/firefox.ts @@ -19,11 +19,10 @@ import { CrossBrowserPermissionsApi, ForegroundPlatformAPI, Permissions, + Settings, + defaultSettings, } from "./api.js"; import chromePlatform, { - containsHostPermissions as chromeHostContains, - removeHostPermissions as chromeHostRemove, - requestHostPermissions as chromeHostRequest, containsClipboardPermissions as chromeClipContains, removeClipboardPermissions as chromeClipRemove, requestClipboardPermissions as chromeClipRequest, @@ -32,6 +31,7 @@ import chromePlatform, { const api: BackgroundPlatformAPI & ForegroundPlatformAPI = { ...chromePlatform, isFirefox, + getSettingsFromStorage, getPermissionsApi, notifyWhenAppIsReady, redirectTabToWalletPage, @@ -51,25 +51,43 @@ function addPermissionsListener(callback: (p: Permissions) => void): void { function getPermissionsApi(): CrossBrowserPermissionsApi { return { addPermissionsListener, - containsHostPermissions: chromeHostContains, - requestHostPermissions: chromeHostRequest, - removeHostPermissions: chromeHostRemove, + // containsHostPermissions: chromeHostContains, + // requestHostPermissions: chromeHostRequest, + // removeHostPermissions: chromeHostRemove, containsClipboardPermissions: chromeClipContains, removeClipboardPermissions: chromeClipRemove, requestClipboardPermissions: chromeClipRequest, }; } +async function getSettingsFromStorage(): Promise { + //@ts-ignore + const data = await browser.storage.local.get("wallet-settings"); + if (!data) return defaultSettings; + const settings = data["wallet-settings"]; + if (!settings) return defaultSettings; + try { + const parsed = JSON.parse(settings); + return parsed; + } catch (e) { + return defaultSettings; + } +} + /** * * @param callback function to be called */ -function notifyWhenAppIsReady(callback: () => void): void { - if (chrome.runtime && chrome.runtime.getManifest().manifest_version === 3) { - callback(); - } else { - window.addEventListener("load", callback); - } +function notifyWhenAppIsReady(): Promise { + return new Promise((resolve) => { + if (chrome.runtime && chrome.runtime.getManifest().manifest_version === 3) { + resolve(); + } else { + window.addEventListener("load", () => { + resolve(); + }); + } + }); } function redirectTabToWalletPage(tabId: number, page: string): void { -- cgit v1.2.3