Prechádzať zdrojové kódy

make "save to clipboard" permission optional

Gildas 3 rokov pred
rodič
commit
84ed103a0b
3 zmenil súbory, kde vykonal 20 pridanie a 3 odobranie
  1. 1 1
      build-extension.sh
  2. 1 1
      manifest.json
  3. 18 1
      src/extension/ui/bg/ui-options.js

+ 1 - 1
build-extension.sh

@@ -11,7 +11,7 @@ sed -i 's/000000000000000000000000/VQJ8Gq8Vxx72QyxPyeLtWvUt/g' src/extension/cor
 
 cp src/extension/core/bg/config.js config.copy.js
 cp src/extension/core/bg/companion.js companion.copy.js
-jq "del(.options_page,.background.persistent,.optional_permissions[0],.permissions[3],.oauth2)" manifest.copy.json > manifest.json
+jq "del(.options_page,.background.persistent,.optional_permissions[0],.permissions[2],.oauth2)" manifest.copy.json > manifest.json
 sed -i 's/forceWebAuthFlow: false/forceWebAuthFlow: true/g' src/extension/core/bg/config.js
 sed -i 's/enabled: true/enabled: false/g' src/extension/core/bg/companion.js
 zip -r singlefile-extension-firefox.zip manifest.json lib _locales src/extension

+ 1 - 1
manifest.json

@@ -99,7 +99,6 @@
 	"permissions": [
 		"identity",
 		"menus",
-		"clipboardWrite",
 		"contextMenus",
 		"downloads",
 		"storage",
@@ -108,6 +107,7 @@
 	],
 	"optional_permissions": [
 		"identity",
+		"clipboardWrite",
 		"nativeMessaging",
 		"bookmarks",
 		"webRequest",

+ 18 - 1
src/extension/ui/bg/ui-options.js

@@ -443,7 +443,7 @@ passReferrerOnErrorInput.addEventListener("click", passReferrerOnError, false);
 autoSaveExternalSaveInput.addEventListener("click", () => enableExternalSave(autoSaveExternalSaveInput), false);
 saveWithCompanionInput.addEventListener("click", () => enableExternalSave(saveWithCompanionInput), false);
 saveToFilesystemInput.addEventListener("click", async () => await browser.runtime.sendMessage({ method: "downloads.disableGDrive" }), false);
-saveToClipboardInput.addEventListener("click", async () => await browser.runtime.sendMessage({ method: "downloads.disableGDrive" }), false);
+saveToClipboardInput.addEventListener("click", onClickSaveToClipboard, false);
 saveWithCompanionInput.addEventListener("click", async () => await browser.runtime.sendMessage({ method: "downloads.disableGDrive" }), false);
 addProofInput.addEventListener("click", async event => {
 	if (addProofInput.checked) {
@@ -979,6 +979,23 @@ async function saveCreatedBookmarks() {
 	}
 }
 
+async function onClickSaveToClipboard() {
+	if (saveToClipboardInput.checked) {
+		saveToClipboardInput.checked = false;
+		try {
+			const permissionGranted = await browser.permissions.request({ permissions: ["clipboardWrite"] });
+			if (permissionGranted) {
+				saveToClipboardInput.checked = true;
+				await browser.runtime.sendMessage({ method: "downloads.disableGDrive" });
+			}
+		} catch (error) {
+			saveToClipboardInput.checked = false;
+		}
+	}
+	await update();
+	await refresh();
+}
+
 async function passReferrerOnError() {
 	if (passReferrerOnErrorInput.checked) {
 		passReferrerOnErrorInput.checked = false;