From f1962dceb3e7cfbe3615f9611866b54fb9f5c4e6 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 22 Dec 2022 12:13:59 -0300 Subject: remove clipboardRead permission & pretty --- .../taler-wallet-webextension/manifest-v2.json | 3 +- .../taler-wallet-webextension/manifest-v3.json | 3 +- .../src/platform/chrome.ts | 77 ++++++++++++---------- .../src/wallet/Settings.tsx | 8 +-- packages/taler-wallet-webextension/src/wxApi.ts | 6 +- .../taler-wallet-webextension/src/wxBackend.ts | 6 +- 6 files changed, 53 insertions(+), 50 deletions(-) (limited to 'packages') diff --git a/packages/taler-wallet-webextension/manifest-v2.json b/packages/taler-wallet-webextension/manifest-v2.json index 74f103feb..8c336da25 100644 --- a/packages/taler-wallet-webextension/manifest-v2.json +++ b/packages/taler-wallet-webextension/manifest-v2.json @@ -24,8 +24,7 @@ "optional_permissions": [ "http://*/*", "https://*/*", - "webRequest", - "clipboardRead" + "webRequest" ], "browser_action": { "default_icon": { diff --git a/packages/taler-wallet-webextension/manifest-v3.json b/packages/taler-wallet-webextension/manifest-v3.json index 78dcac623..fe9b75375 100644 --- a/packages/taler-wallet-webextension/manifest-v3.json +++ b/packages/taler-wallet-webextension/manifest-v3.json @@ -27,8 +27,7 @@ } }, "optional_permissions": [ - "webRequest", - "clipboardRead" + "webRequest" ], "host_permissions": [ "http://*/*", diff --git a/packages/taler-wallet-webextension/src/platform/chrome.ts b/packages/taler-wallet-webextension/src/platform/chrome.ts index f951685d2..b7b0c6640 100644 --- a/packages/taler-wallet-webextension/src/platform/chrome.ts +++ b/packages/taler-wallet-webextension/src/platform/chrome.ts @@ -83,13 +83,14 @@ const hostPermissions = { export function containsClipboardPermissions(): Promise { return new Promise((res, rej) => { - chrome.permissions.contains({ permissions: ["clipboardRead"] }, (resp) => { - const le = chrome.runtime.lastError?.message; - if (le) { - rej(le); - } - res(resp); - }); + res(false); + // chrome.permissions.contains({ permissions: ["clipboardRead"] }, (resp) => { + // const le = chrome.runtime.lastError?.message; + // if (le) { + // rej(le); + // } + // res(resp); + // }); }); } @@ -107,13 +108,14 @@ export function containsHostPermissions(): Promise { export async function requestClipboardPermissions(): Promise { return new Promise((res, rej) => { - chrome.permissions.request({ permissions: ["clipboardRead"] }, (resp) => { - const le = chrome.runtime.lastError?.message; - if (le) { - rej(le); - } - res(resp); - }); + res(false); + // chrome.permissions.request({ permissions: ["clipboardRead"] }, (resp) => { + // const le = chrome.runtime.lastError?.message; + // if (le) { + // rej(le); + // } + // res(resp); + // }); }); } @@ -187,13 +189,14 @@ export async function removeHostPermissions(): Promise { export function removeClipboardPermissions(): Promise { return new Promise((res, rej) => { - chrome.permissions.remove({ permissions: ["clipboardRead"] }, (resp) => { - const le = chrome.runtime.lastError?.message; - if (le) { - rej(le); - } - res(resp); - }); + res(true); + // chrome.permissions.remove({ permissions: ["clipboardRead"] }, (resp) => { + // const le = chrome.runtime.lastError?.message; + // if (le) { + // rej(le); + // } + // res(resp); + // }); }); } @@ -775,21 +778,23 @@ async function timeout(ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)); } async function findTalerUriInClipboard(): Promise { - try { - //It looks like clipboard promise does not return, so we need a timeout - const textInClipboard = await Promise.any([ - timeout(100), - window.navigator.clipboard.readText(), - ]); - if (!textInClipboard) return; - return textInClipboard.startsWith("taler://") || - textInClipboard.startsWith("taler+http://") - ? textInClipboard - : undefined; - } catch (e) { - logger.error("could not read clipboard", e); - return undefined; - } + //FIXME: add clipboard feature + // try { + // //It looks like clipboard promise does not return, so we need a timeout + // const textInClipboard = await Promise.any([ + // timeout(100), + // window.navigator.clipboard.readText(), + // ]); + // if (!textInClipboard) return; + // return textInClipboard.startsWith("taler://") || + // textInClipboard.startsWith("taler+http://") + // ? textInClipboard + // : undefined; + // } catch (e) { + // logger.error("could not read clipboard", e); + // return undefined; + // } + return undefined; } async function findTalerUriInActiveTab(): Promise { diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.tsx b/packages/taler-wallet-webextension/src/wallet/Settings.tsx index f00b242d6..c9b2205c5 100644 --- a/packages/taler-wallet-webextension/src/wallet/Settings.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Settings.tsx @@ -115,12 +115,12 @@ export function SettingsView({ error={autoOpenToggle.button.error.errorDetail} /> )} - {clipboardToggle.button.error && ( + {/* {clipboardToggle.button.error && ( Could not toggle clipboard} error={clipboardToggle.button.error.errorDetail} /> - )} + )} */} Navigator @@ -140,7 +140,7 @@ export function SettingsView({ enabled={autoOpenToggle.value!} onToggle={autoOpenToggle.button.onClick!} /> - Automatically check clipboard for Taler URI @@ -155,7 +155,7 @@ export function SettingsView({ } enabled={clipboardToggle.value!} onToggle={clipboardToggle.button.onClick!} - /> + /> */} Trust diff --git a/packages/taler-wallet-webextension/src/wxApi.ts b/packages/taler-wallet-webextension/src/wxApi.ts index 4ec51fc78..0d33719be 100644 --- a/packages/taler-wallet-webextension/src/wxApi.ts +++ b/packages/taler-wallet-webextension/src/wxApi.ts @@ -58,9 +58,9 @@ export interface BackgroundOperations { response: void; }; sum: { - request: number[], - response: number, - } + request: number[]; + response: number; + }; resetDb: { request: void; response: void; diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts index d54dc818f..dca239de6 100644 --- a/packages/taler-wallet-webextension/src/wxBackend.ts +++ b/packages/taler-wallet-webextension/src/wxBackend.ts @@ -164,12 +164,12 @@ async function toggleHeaderListener( function freeze(time: number): Promise { return new Promise((res, rej) => { - setTimeout(res, time) - }) + setTimeout(res, time); + }); } async function sum(ns: Array): Promise { - return ns.reduce((prev, cur) => prev + cur, 0) + return ns.reduce((prev, cur) => prev + cur, 0); } const backendHandlers: BackendHandlerType = { -- cgit v1.2.3