|
|
@@ -442,9 +442,11 @@ saveCreatedBookmarksInput.addEventListener("click", saveCreatedBookmarks, false)
|
|
|
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", onClickSaveToClipboard, false);
|
|
|
-saveWithCompanionInput.addEventListener("click", async () => await browser.runtime.sendMessage({ method: "downloads.disableGDrive" }), false);
|
|
|
+saveToFilesystemInput.addEventListener("click", () => disableDestinationPermissions(["clipboardWrite", "nativeMessaging"]), false);
|
|
|
+saveToClipboardInput.addEventListener("click", () => disableDestinationPermissions(["nativeMessaging"]), false);
|
|
|
+saveWithCompanionInput.addEventListener("click", () => disableDestinationPermissions(["clipboardWrite"]), false);
|
|
|
+saveToGDriveInput.addEventListener("click", () => disableDestinationPermissions(["clipboardWrite", "nativeMessaging"], false), false);
|
|
|
addProofInput.addEventListener("click", async event => {
|
|
|
if (addProofInput.checked) {
|
|
|
addProofInput.checked = false;
|
|
|
@@ -969,6 +971,11 @@ async function saveCreatedBookmarks() {
|
|
|
await disableOption();
|
|
|
}
|
|
|
} else {
|
|
|
+ try {
|
|
|
+ await browser.permissions.remove({ permissions: ["bookmarks"] });
|
|
|
+ } catch (error) {
|
|
|
+ // ignored
|
|
|
+ }
|
|
|
await disableOption();
|
|
|
}
|
|
|
|
|
|
@@ -996,6 +1003,17 @@ async function onClickSaveToClipboard() {
|
|
|
await refresh();
|
|
|
}
|
|
|
|
|
|
+async function disableDestinationPermissions(permissions, disableGDrive = true) {
|
|
|
+ if (disableGDrive) {
|
|
|
+ await browser.runtime.sendMessage({ method: "downloads.disableGDrive" });
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ await browser.permissions.remove({ permissions });
|
|
|
+ } catch (error) {
|
|
|
+ //ignored
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
async function passReferrerOnError() {
|
|
|
if (passReferrerOnErrorInput.checked) {
|
|
|
passReferrerOnErrorInput.checked = false;
|