diff options
author | Sebastian <sebasjm@gmail.com> | 2022-04-28 13:26:29 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-04-28 13:26:29 -0300 |
commit | b239ae1029eef5a68bf98d21e81acd317abb0673 (patch) | |
tree | f0e7657a35e92a7a4f75222ff6aa247e578e9af2 /packages/taler-wallet-webextension/src/platform | |
parent | 451c9884dcd20e7e886ed32e5ef93913d29e36ff (diff) | |
download | wallet-core-b239ae1029eef5a68bf98d21e81acd317abb0673.tar.xz |
keep alive manifest v3
Diffstat (limited to 'packages/taler-wallet-webextension/src/platform')
3 files changed, 23 insertions, 1 deletions
diff --git a/packages/taler-wallet-webextension/src/platform/api.ts b/packages/taler-wallet-webextension/src/platform/api.ts index cee628a6f..4713d5d00 100644 --- a/packages/taler-wallet-webextension/src/platform/api.ts +++ b/packages/taler-wallet-webextension/src/platform/api.ts @@ -57,6 +57,10 @@ export interface WalletVersion { */ export interface PlatformAPI { /** + * Garantee that the + */ + keepAlive(cb: VoidFunction): void; + /** * FIXME: should not be needed * * check if the platform is firefox diff --git a/packages/taler-wallet-webextension/src/platform/chrome.ts b/packages/taler-wallet-webextension/src/platform/chrome.ts index d295168bf..900470dff 100644 --- a/packages/taler-wallet-webextension/src/platform/chrome.ts +++ b/packages/taler-wallet-webextension/src/platform/chrome.ts @@ -15,7 +15,7 @@ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -import { classifyTalerUri, CoreApiResponse, TalerUriType } from "@gnu-taler/taler-util"; +import { classifyTalerUri, CoreApiResponse, Logger, TalerUriType } from "@gnu-taler/taler-util"; import { CrossBrowserPermissionsApi, MessageFromBackend, Permissions, PlatformAPI } from "./api.js"; const api: PlatformAPI = { @@ -38,10 +38,27 @@ const api: PlatformAPI = { sendMessageToWalletBackground, useServiceWorkerAsBackgroundProcess, containsTalerHeaderListener, + keepAlive, } export default api; +const logger = new Logger("chrome.ts"); + +function keepAlive(callback: any): void { + if (chrome.runtime && chrome.runtime.getManifest().manifest_version === 3) { + chrome.alarms.create("wallet-worker", { periodInMinutes: 1 }) + + chrome.alarms.onAlarm.addListener((a) => { + logger.trace(`kee p alive alarm: ${a.name}`) + callback() + }) + } else { + callback(); + } + +} + function isFirefox(): boolean { return false; } diff --git a/packages/taler-wallet-webextension/src/platform/dev.ts b/packages/taler-wallet-webextension/src/platform/dev.ts index e05ff29e9..59e6738c5 100644 --- a/packages/taler-wallet-webextension/src/platform/dev.ts +++ b/packages/taler-wallet-webextension/src/platform/dev.ts @@ -21,6 +21,7 @@ const frames = ["popup", "wallet"] const api: PlatformAPI = ({ isFirefox: () => false, + keepAlive: (cb: VoidFunction) => cb(), findTalerUriInActiveTab: async () => undefined, containsTalerHeaderListener: () => { return true }, getPermissionsApi: () => ({ |