summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/platform/api.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/platform/api.ts')
-rw-r--r--packages/taler-wallet-webextension/src/platform/api.ts38
1 files changed, 23 insertions, 15 deletions
diff --git a/packages/taler-wallet-webextension/src/platform/api.ts b/packages/taler-wallet-webextension/src/platform/api.ts
index 40993477b..f87500c4f 100644
--- a/packages/taler-wallet-webextension/src/platform/api.ts
+++ b/packages/taler-wallet-webextension/src/platform/api.ts
@@ -17,6 +17,10 @@
import { CoreApiResponse, NotificationType } from "@gnu-taler/taler-util";
import { WalletOperations } from "@gnu-taler/taler-wallet-core";
import { BackgroundOperations } from "../wxApi.js";
+import {
+ ExtensionOperations,
+ MessageFromExtension,
+} from "../taler-wallet-interaction-loader.js";
export interface Permissions {
/**
@@ -35,9 +39,9 @@ export interface Permissions {
* Compatibility API that works on multiple browsers.
*/
export interface CrossBrowserPermissionsApi {
- containsHostPermissions(): Promise<boolean>;
- requestHostPermissions(): Promise<boolean>;
- removeHostPermissions(): Promise<boolean>;
+ // containsHostPermissions(): Promise<boolean>;
+ // requestHostPermissions(): Promise<boolean>;
+ // removeHostPermissions(): Promise<boolean>;
containsClipboardPermissions(): Promise<boolean>;
requestClipboardPermissions(): Promise<boolean>;
@@ -53,9 +57,11 @@ export type MessageFromBackend = {
};
export type MessageFromFrontend<
- Op extends BackgroundOperations | WalletOperations,
+ Op extends BackgroundOperations | WalletOperations | ExtensionOperations,
> = Op extends BackgroundOperations
? MessageFromFrontendBackground<keyof BackgroundOperations>
+ : Op extends ExtensionOperations
+ ? MessageFromExtension<keyof ExtensionOperations>
: Op extends WalletOperations
? MessageFromFrontendWallet<keyof WalletOperations>
: never;
@@ -81,12 +87,24 @@ export interface WalletWebExVersion {
version: string;
}
+export interface Settings {
+ injectTalerSupport: boolean;
+}
+
+export const defaultSettings: Settings = {
+ injectTalerSupport: false,
+};
+
/**
* Compatibility helpers needed for browsers that don't implement
* WebExtension APIs consistently.
*/
export interface BackgroundPlatformAPI {
/**
+ *
+ */
+ getSettingsFromStorage(): Promise<Settings>;
+ /**
* Guarantee that the service workers don't die
*/
keepAlive(cb: VoidFunction): void;
@@ -116,17 +134,13 @@ export interface BackgroundPlatformAPI {
* Register a callback to be called when the wallet is ready to start
* @param callback
*/
- notifyWhenAppIsReady(callback: () => void): void;
+ notifyWhenAppIsReady(): Promise<void>;
/**
* Get the wallet version from manifest
*/
getWalletWebExVersion(): WalletWebExVersion;
/**
- * Frontend API
- */
- containsTalerHeaderListener(): boolean;
- /**
* Backend API
*/
registerAllIncomingConnections(): void;
@@ -134,12 +148,6 @@ export interface BackgroundPlatformAPI {
* Backend API
*/
registerReloadOnNewVersion(): void;
- /**
- * Backend API
- */
- registerTalerHeaderListener(
- onHeader: (tabId: number, url: string) => void,
- ): void;
/**
* Permission API for checking and add a listener