From 485276e46caf51b6671a13cdd55f95342f12864b Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sun, 18 Aug 2024 23:07:02 +0300 Subject: fix(extension): Upgrade crxjs to 2.0 to add support for firefox --- apps/browser-extension/manifest.json | 3 ++- apps/browser-extension/package.json | 2 +- apps/browser-extension/src/background/background.ts | 4 +++- apps/browser-extension/vite.config.ts | 8 +++++++- 4 files changed, 13 insertions(+), 4 deletions(-) (limited to 'apps') diff --git a/apps/browser-extension/manifest.json b/apps/browser-extension/manifest.json index 4a21c424..fa82f3fa 100644 --- a/apps/browser-extension/manifest.json +++ b/apps/browser-extension/manifest.json @@ -12,7 +12,8 @@ "default_popup": "index.html" }, "background": { - "service_worker": "src/background/background.ts" + "service_worker": "src/background/background.ts", + "scripts": ["src/background/background.ts"] }, "options_ui": { "page": "index.html#options", diff --git a/apps/browser-extension/package.json b/apps/browser-extension/package.json index 7ede2c05..0e5d8166 100644 --- a/apps/browser-extension/package.json +++ b/apps/browser-extension/package.json @@ -39,7 +39,7 @@ "zod": "^3.22.4" }, "devDependencies": { - "@crxjs/vite-plugin": "^1.0.14", + "@crxjs/vite-plugin": "2.0.0-beta.25", "@hoarder/eslint-config": "workspace:^0.2.0", "@hoarder/prettier-config": "workspace:^0.1.0", "@hoarder/tailwind-config": "workspace:^0.1.0", diff --git a/apps/browser-extension/src/background/background.ts b/apps/browser-extension/src/background/background.ts index cab58aa9..7622c07e 100644 --- a/apps/browser-extension/src/background/background.ts +++ b/apps/browser-extension/src/background/background.ts @@ -69,9 +69,11 @@ async function handleContextMenuClick(info: chrome.contextMenus.OnClickData) { }; } if (newBookmark) { - await chrome.storage.session.set({ + chrome.storage.session.set({ [NEW_BOOKMARK_REQUEST_KEY_NAME]: newBookmark, }); + // NOTE: Firefox only allows opening context menus if it's triggered by a user action. + // awaiting on any promise before calling this function will lose the "user action" context. await chrome.action.openPopup(); } } diff --git a/apps/browser-extension/vite.config.ts b/apps/browser-extension/vite.config.ts index 42ecc28d..37b92349 100644 --- a/apps/browser-extension/vite.config.ts +++ b/apps/browser-extension/vite.config.ts @@ -6,5 +6,11 @@ import manifest from "./manifest.json"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react(), crx({ manifest })], + plugins: [ + react(), + crx({ + manifest, + browser: process.env.VITE_BUILD_FIREFOX ? "firefox" : "chrome", + }), + ], }); -- cgit v1.2.3-70-g09d2