From ec2ec4192009fb0dfb01ee3b6f01f8b3c6159d0e Mon Sep 17 00:00:00 2001 From: Carlos Quintana Date: Thu, 20 Mar 2025 14:52:28 +0100 Subject: [PATCH 1/2] feat: do not relogin if extension is already logged in --- CHANGELOG | 4 ++++ package-lock.json | 4 ++-- package.json | 3 ++- src/background/index.js | 8 +++++--- src/content_script/input_tools.js | 9 +++++++++ webpack.config.js | 29 ++++++++++++++++++----------- 6 files changed, 40 insertions(+), 17 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index da9610a..a8f66cb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.0.7] - 2025-03-20 + +- Do not try to rerun extension setup if already logged in + ## [3.0.6] - 2024-09-04 - Fix onboarding on Safari diff --git a/package-lock.json b/package-lock.json index 56c21d3..931bb8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "simplelogin-extension", - "version": "3.0.5", + "version": "3.0.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "simplelogin-extension", - "version": "3.0.5", + "version": "3.0.7", "license": "MIT", "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.36", diff --git a/package.json b/package.json index 26867f6..a8d14a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "simplelogin-extension", - "version": "3.0.6", + "version": "3.0.7", "betaRev": "0", "description": "SimpleLogin Browser Extension", "author": "extension@simplelogin.io", @@ -10,6 +10,7 @@ "prettier:write": "npm run prettier -- --write", "prettier:check": "prettier --check \"src/**/*.{js,vue}\"", "build": "cross-env NODE_ENV=production webpack", + "build:dev": "cross-env NODE_ENV=development webpack", "build:firefox": "cross-env NODE_ENV=production FIREFOX=1 webpack", "build:firefox:beta": "cross-env NODE_ENV=production BETA=1 FIREFOX=1 webpack", "build:lite": "cross-env NODE_ENV=production LITE=1 webpack", diff --git a/src/background/index.js b/src/background/index.js index d776fb7..a56ce86 100644 --- a/src/background/index.js +++ b/src/background/index.js @@ -14,10 +14,12 @@ import Utils from "../popup/Utils"; * Get app settings */ async function handleGetAppSettings() { + const apiKey = await SLStorage.get(SLStorage.SETTINGS.API_KEY); return { showSLButton: - (await SLStorage.get(SLStorage.SETTINGS.API_KEY)) !== "" && - (await SLStorage.get(SLStorage.SETTINGS.SHOW_SL_BUTTON)), + apiKey !== "" && (await SLStorage.get(SLStorage.SETTINGS.SHOW_SL_BUTTON)), + isLoggedIn: apiKey !== "", + url: await SLStorage.get(SLStorage.SETTINGS.API_URL), SLButtonPosition: await SLStorage.get( SLStorage.SETTINGS.SL_BUTTON_POSITION ), @@ -132,7 +134,7 @@ browser.runtime.onMessage.addListener(async function (request, sender) { ? await SLStorage.get(SLStorage.SETTINGS.API_URL) : await handleExtensionSetup(); } else if (request.tag === "EXTENSION_INSTALLED_QUERY") { - return handleExtensionInstalledQuery(); + return await handleExtensionInstalledQuery(); } else if (request.tag === "SAFARI_FINALIZE_EXTENSION_SETUP") { return await finalizeExtensionSetup(request.data); } diff --git a/src/content_script/input_tools.js b/src/content_script/input_tools.js index 6febff7..5c0ba79 100644 --- a/src/content_script/input_tools.js +++ b/src/content_script/input_tools.js @@ -258,6 +258,15 @@ if (!window._hasExecutedSlExtension) { if (!event.data) return; if (!event.data.tag) return; if (event.data.tag === "PERFORM_EXTENSION_SETUP") { + const SLSettings = await sendMessageToBackground("GET_APP_SETTINGS"); + if (SLSettings.isLoggedIn) { + console.log( + "Received PERFORM_EXTENSION_SETUP but extension is already logged in. Redirecting to dashboard" + ); + window.location.href = `${SLSettings.url}/dashboard/`; + return; + } + if (!hasProcessedSetup) { hasProcessedSetup = true; const apiUrl = await sendMessageToBackground("EXTENSION_SETUP"); diff --git a/webpack.config.js b/webpack.config.js index 681e978..ff58c48 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -159,12 +159,17 @@ const config = { ], }; +console.log(`[Build] Using config.mode = ${config.mode}`); + if (config.mode === 'development') { + const pluginConfig = { + 'devConfig': JSON.stringify(devConfig), + 'process.env.BETA': JSON.stringify(!!process.env.BETA), + }; + + console.log(`[development] Using pluginConfig: ${JSON.stringify(pluginConfig)}`); config.plugins = (config.plugins || []).concat([ - new webpack.DefinePlugin({ - 'devConfig': JSON.stringify(devConfig), - 'process.env.BETA': JSON.stringify(!!process.env.BETA), - }), + new webpack.DefinePlugin(pluginConfig), ]); } @@ -177,14 +182,16 @@ if (process.env.MAC){ } if (config.mode === 'production') { + const pluginConfig = { + 'devConfig': 'null', + 'process.env': { + 'NODE_ENV': '"production"', + 'BETA': JSON.stringify(!!process.env.BETA), + } + }; + console.log(`[production] Using pluginConfig: ${JSON.stringify(pluginConfig)}`); config.plugins = (config.plugins || []).concat([ - new webpack.DefinePlugin({ - 'devConfig': 'null', - 'process.env': { - 'NODE_ENV': '"production"', - 'BETA': JSON.stringify(!!process.env.BETA), - }, - }), + new webpack.DefinePlugin(pluginConfig), ]); } From c51dc4e022655edceeb1d0bdae7f9f1c605b0c9b Mon Sep 17 00:00:00 2001 From: Carlos Quintana Date: Thu, 20 Mar 2025 15:56:42 +0100 Subject: [PATCH 2/2] fix: remove extra await --- src/background/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/background/index.js b/src/background/index.js index a56ce86..bbdd03f 100644 --- a/src/background/index.js +++ b/src/background/index.js @@ -134,7 +134,7 @@ browser.runtime.onMessage.addListener(async function (request, sender) { ? await SLStorage.get(SLStorage.SETTINGS.API_URL) : await handleExtensionSetup(); } else if (request.tag === "EXTENSION_INSTALLED_QUERY") { - return await handleExtensionInstalledQuery(); + return handleExtensionInstalledQuery(); } else if (request.tag === "SAFARI_FINALIZE_EXTENSION_SETUP") { return await finalizeExtensionSetup(request.data); }