From 35fecb20acdf4844b83f6cfce4c1232a2698680c Mon Sep 17 00:00:00 2001 From: Juan Manuel Gonzalez Alama Date: Thu, 13 Nov 2025 16:43:47 -0300 Subject: [PATCH 1/2] Fallback to default action icon if action is not present in manifest. --- .../src/browser/api/browser-action.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/electron-chrome-extensions/src/browser/api/browser-action.ts b/packages/electron-chrome-extensions/src/browser/api/browser-action.ts index 0592089..a557908 100644 --- a/packages/electron-chrome-extensions/src/browser/api/browser-action.ts +++ b/packages/electron-chrome-extensions/src/browser/api/browser-action.ts @@ -61,6 +61,15 @@ const getBrowserActionDefaults = (extension: Electron.Extension): ExtensionActio return action } + + // Fallback: Create action for extensions without explicit action but with icons. + const iconPath = getIconPath(extension); + if (iconPath) { + const action: ExtensionAction = {} + action.title = manifest.name; + action.icon = { path: iconPath }; + return action; + } } interface ExtensionActionStore extends Partial { From 151169f55586ab44d35b4480c1c0ca0d62dc8556 Mon Sep 17 00:00:00 2001 From: Juan Manuel Gonzalez Alama Date: Thu, 13 Nov 2025 18:09:38 -0300 Subject: [PATCH 2/2] Simplify code. --- .../src/browser/api/browser-action.ts | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/packages/electron-chrome-extensions/src/browser/api/browser-action.ts b/packages/electron-chrome-extensions/src/browser/api/browser-action.ts index a557908..b17353a 100644 --- a/packages/electron-chrome-extensions/src/browser/api/browser-action.ts +++ b/packages/electron-chrome-extensions/src/browser/api/browser-action.ts @@ -46,29 +46,26 @@ const getBrowserActionDefaults = (extension: Electron.Extension): ExtensionActio : manifest.manifest_version === 2 ? manifest.browser_action : undefined - if (typeof browserAction === 'object') { - const manifestAction: chrome.runtime.ManifestAction = browserAction - const action: ExtensionAction = {} - - action.title = manifestAction.default_title || manifest.name - const iconPath = getIconPath(extension) - if (iconPath) action.icon = { path: iconPath } + const iconPath = getIconPath(extension) - if (manifestAction.default_popup) { - action.popup = manifestAction.default_popup + if (typeof browserAction === 'object') { + const manifestAction: chrome.runtime.ManifestAction = browserAction + const action: ExtensionAction = { + title: manifestAction.default_title || manifest.name, + ...(iconPath && { icon: { path: iconPath } }), + ...(manifestAction.default_popup && { popup: manifestAction.default_popup }), } return action } - // Fallback: Create action for extensions without explicit action but with icons. - const iconPath = getIconPath(extension); + // Fallback: Create action icon for extensions without explicit action. if (iconPath) { - const action: ExtensionAction = {} - action.title = manifest.name; - action.icon = { path: iconPath }; - return action; + return { + title: manifest.name, + icon: { path: iconPath }, + } } }