From 97652b5b777e47e5bdce6b83b89ed5f4f54f983b Mon Sep 17 00:00:00 2001 From: rugk Date: Fri, 19 Jun 2026 14:15:17 +0200 Subject: [PATCH 1/3] fix(contextMenu): use BrowserCommunication to fix exception in it's receiver --- src/background/modules/ContextMenu.js | 14 +++++++++----- .../modules/data/BrowserCommunicationTypes.js | 3 ++- src/options/modules/CustomOptionTriggers.js | 18 +++++++----------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/background/modules/ContextMenu.js b/src/background/modules/ContextMenu.js index f60034e5..ad157c6d 100644 --- a/src/background/modules/ContextMenu.js +++ b/src/background/modules/ContextMenu.js @@ -1,3 +1,5 @@ + +import * as BrowserCommunication from "/common/modules/BrowserCommunication/BrowserCommunication.js"; import { COMMUNICATION_MESSAGE_TYPE } from "/common/modules/data/BrowserCommunicationTypes.js"; import { createMenu } from "/common/modules/ContextMenu.js"; @@ -149,15 +151,17 @@ export function init() { return createItems().then(() => { browser.menus.onClicked.addListener(menuClicked); browser.menus.onShown.addListener(menuShown); - browser.runtime.onMessage.addListener((message) => { - if (message.action === "enableContextMenu") { + + BrowserCommunication.addListener(COMMUNICATION_MESSAGE_TYPE.SET_QR_TEXT, (request, sender, sendResponse) => { + if (request.value) { browser.menus.update(CONVERT_PAGE_URL, { visible: true }); console.log("Context menu enabled"); - } else if (message.action === "disableContextMenu") { + } else { browser.menus.update(CONVERT_PAGE_URL, { visible: false }); console.log("Context menu disabled"); } - browser.menus.refresh(); - }); + + sendResponse(); + }); }); } diff --git a/src/common/modules/data/BrowserCommunicationTypes.js b/src/common/modules/data/BrowserCommunicationTypes.js index d9742796..07115485 100644 --- a/src/common/modules/data/BrowserCommunicationTypes.js +++ b/src/common/modules/data/BrowserCommunicationTypes.js @@ -13,5 +13,6 @@ export const COMMUNICATION_MESSAGE_TYPE = Object.freeze({ SET_QR_TEXT: "setQrText", SAVE_FILE_AS: "saveFileAs", - SAVE_FILE_AS_STOP_RETRY: "saveFileAsStopRetry" + SAVE_FILE_AS_STOP_RETRY: "saveFileAsStopRetry", + CONTEXT_MENU_CHANGE: "contextMenuChange" }); diff --git a/src/options/modules/CustomOptionTriggers.js b/src/options/modules/CustomOptionTriggers.js index 672d6e7e..f32f3f1c 100644 --- a/src/options/modules/CustomOptionTriggers.js +++ b/src/options/modules/CustomOptionTriggers.js @@ -10,6 +10,7 @@ import * as CommonMessages from "/common/modules/MessageHandler/CommonMessages.j import * as CustomMessages from "/common/modules/MessageHandler/CustomMessages.js"; import { MESSAGE_LEVEL } from "/common/modules/data/MessageLevel.js"; import * as PermissionRequest from "/common/modules/PermissionRequest/PermissionRequest.js"; +import { COMMUNICATION_MESSAGE_TYPE } from "/common/modules/data/BrowserCommunicationTypes.js"; // used to apply options import * as Colors from "/common/modules/Colors.js"; @@ -89,15 +90,10 @@ function applyPopupIconColor(optionValue) { * @returns {void} */ function applyContextMenuEnabled(optionValue) { - if (optionValue) { - console.log("Context menu is enabled"); - // Call the logic to enable the context menu - browser.runtime.sendMessage({ action: "enableContextMenu" }); - } else { - console.log("Context menu is disabled"); - // Call the logic to disable the context menu - browser.runtime.sendMessage({ action: "disableContextMenu" }); - } + browser.runtime.sendMessage({ + type: COMMUNICATION_MESSAGE_TYPE.SET_QR_TEXT, + value: optionValue + }); } /** @@ -278,10 +274,10 @@ function applyClipboardContent(optionValue, event={}) { event, {retry: true} ); - } + } PermissionRequest.cancelPermissionPrompt(CLIPBOARD_READ_PERMISSION,MESSAGE_CLIPBOARD_READ_PERMISSION); return Promise.resolve(); -} +} /** * Binds the triggers. From 688d2605c42347f6021876949080d4beee56745a Mon Sep 17 00:00:00 2001 From: rugk Date: Fri, 19 Jun 2026 14:16:50 +0200 Subject: [PATCH 2/3] style: remove empty line --- src/background/modules/ContextMenu.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/background/modules/ContextMenu.js b/src/background/modules/ContextMenu.js index ad157c6d..78194709 100644 --- a/src/background/modules/ContextMenu.js +++ b/src/background/modules/ContextMenu.js @@ -1,4 +1,3 @@ - import * as BrowserCommunication from "/common/modules/BrowserCommunication/BrowserCommunication.js"; import { COMMUNICATION_MESSAGE_TYPE } from "/common/modules/data/BrowserCommunicationTypes.js"; import { createMenu } from "/common/modules/ContextMenu.js"; From 74daacfd94f1388e1af686175025c27d659415d0 Mon Sep 17 00:00:00 2001 From: rugk Date: Fri, 19 Jun 2026 14:18:38 +0200 Subject: [PATCH 3/3] style: no need for sending a response --- src/background/modules/ContextMenu.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/background/modules/ContextMenu.js b/src/background/modules/ContextMenu.js index 78194709..7333e4fc 100644 --- a/src/background/modules/ContextMenu.js +++ b/src/background/modules/ContextMenu.js @@ -151,7 +151,7 @@ export function init() { browser.menus.onClicked.addListener(menuClicked); browser.menus.onShown.addListener(menuShown); - BrowserCommunication.addListener(COMMUNICATION_MESSAGE_TYPE.SET_QR_TEXT, (request, sender, sendResponse) => { + BrowserCommunication.addListener(COMMUNICATION_MESSAGE_TYPE.SET_QR_TEXT, (request) => { if (request.value) { browser.menus.update(CONVERT_PAGE_URL, { visible: true }); console.log("Context menu enabled"); @@ -159,8 +159,6 @@ export function init() { browser.menus.update(CONVERT_PAGE_URL, { visible: false }); console.log("Context menu disabled"); } - - sendResponse(); }); }); }