From cd3e12e344296dd1aa9074ec82be5093ab3999b9 Mon Sep 17 00:00:00 2001 From: Adrien Matissart Date: Thu, 15 Feb 2024 16:56:58 +0100 Subject: [PATCH] [ext] require MANIFEST_VERSION when configuring the extension with EXTENSION_BROWSER set --- browser-extension/prepareExtension.js | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/browser-extension/prepareExtension.js b/browser-extension/prepareExtension.js index 86a898e31f..dfcb1820a1 100644 --- a/browser-extension/prepareExtension.js +++ b/browser-extension/prepareExtension.js @@ -7,18 +7,26 @@ import { } from './prepareTools.js'; const env = process.env.TOURNESOL_ENV || 'production'; -const browser = process.env.EXTENSION_BROWSER || 'firefox'; -const defaultManifestVersion = browser === 'firefox' ? 2 : 3; -const manifestVersion = parseInt( - process.env.MANIFEST_VERSION || defaultManifestVersion -); +const browser = process.env.EXTENSION_BROWSER || 'firefox'; +if (process.env.EXTENSION_BROWSER && !process.env.MANIFEST_VERSION) { + throw new Error(`MANIFEST_VERSION is required with EXTENSION_BROWSER`); +} +const manifestVersion = parseInt(process.env.MANIFEST_VERSION || 2); if (manifestVersion != 2 && manifestVersion != 3) throw new Error(`Invalid manifest version: ${manifestVersion}`); +if (manifestVersion === 2) { + console.info( + `Extension will be configured with manifest version ${manifestVersion}.` + ); +} else { + console.info( + `Extension will be configured for ${browser} with manifest version ${manifestVersion}.` + ); +} const { version } = await readPackage(); - const hostPermissions = [ ...selectValue(env, { production: ['https://tournesol.app/', 'https://api.tournesol.app/'], @@ -36,6 +44,11 @@ const permissions = [ 'contextMenus', 'storage', 'webNavigation', + // webRequest and webReauestBlocking were used to overwrite + // headers in the API response. This is no longer the case + // with version > 3.5.2. + // These permissions can be removed as soon as we are confident + // the next release works as expected. 'webRequest', 'webRequestBlocking', ...selectValue(manifestVersion, { 2: [], 3: ['scripting'] }),