diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/platform/chrome.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/platform/chrome.ts | 19 |
1 files changed, 18 insertions, 1 deletions
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; } |