Skip to content

Upgrade to MV3 (WIP)#373

Draft
mxgnr wants to merge 4 commits into
lovasoa:masterfrom
mxgnr:mv3
Draft

Upgrade to MV3 (WIP)#373
mxgnr wants to merge 4 commits into
lovasoa:masterfrom
mxgnr:mv3

Conversation

@mxgnr
Copy link
Copy Markdown
Contributor

@mxgnr mxgnr commented Aug 25, 2025

WIP -> #236

Adaptation de l'extension pour la compatibilité ManifestV3 (MV3) suite à la dépréciation de la MV2 par le navigateur Google Chrome.

@mxgnr
Copy link
Copy Markdown
Contributor Author

mxgnr commented Aug 25, 2025

Le build PR semble ne pas fonctionner à cause du module web-ext utilisé pour le lint :
Bien que l'extension peut contenir à la fois la déclaration "service_worker": "background.js" (support MV3 pour Chrome) et "scripts": ["background.js"] (fallback MV2 pour FF), le linter voit ça comme un alerte (car FF ne supporte pas la prop "service_worker" pour le moment).

2 solutions possibles pour valider les runs pour le MV3 :

  • Désactiver le flag --warnings-as-errors
  • Créer un fichier de conf .web-ext-config.js en ignorant les champs non supportés dans le manifest.json
module.exports = {
  lint: {
    warningsAsErrors: false,
    ignore: ['MANIFEST_FIELD_UNSUPPORTED']
  }
};

@lovasoa
Copy link
Copy Markdown
Owner

lovasoa commented Aug 25, 2025

Je serais plutôt pour garder warningsAsErrors: true et ignorer juste ce warning là.

Et peut-être remonter le problème à web-ext eux-mêmes ? Si c'est le seul moyen de faire une extension compatible avec ff et chrome, il ne faudrait pas que ça casse le linter.

Comment thread ophirofox/manifest.json
@lovasoa
Copy link
Copy Markdown
Owner

lovasoa commented Aug 25, 2025

En fait je ne comprends pas: quel que soit le navigateur, ce n'est pas valide d'avoir un "scripts": ["background.js"] si l'extension est déclarée comme MV3, si ?

@mxgnr
Copy link
Copy Markdown
Contributor Author

mxgnr commented Aug 25, 2025

En fait je ne comprends pas: quel que soit le navigateur, ce n'est pas valide d'avoir un "scripts": ["background.js"] si l'extension est déclarée comme MV3, si ?

Le support inter-navigateur est très particulier, comme souvent lorsque le dev de la fonctionnalité (ici MV3) est faite par un seul acteur sans standard global du W3C, les différences sont détaillées ici : https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background#browser_support

Ici c'est la prop service_worker qui est supportée par Chrome et Safari mais pas Firefox (toujours le cas aujd).

@mxgnr
Copy link
Copy Markdown
Contributor Author

mxgnr commented Aug 27, 2025

Hello,

Pour rappel, une des fonctionnalités à tester suite à la migration est celle de l'auth via referer, comme avec les provider suivants : Blibliothèques du Val d'Oise / RéVOdoc, E-medi@s Savoie Mont Blanc, Toulouse Métropole - MaBM. Si vous en avez sous la main, je peux tester voir si tout fonctionne correctement.

Si vous avez également des identifiants BNF, je peux également les tester étant donné qu'il y a des constantes particulières sur certains services.

@Write
Copy link
Copy Markdown
Collaborator

Write commented Nov 17, 2025

Hello @kvnco, je me souviens que tu m'avais prêté ton accès MaBM pour fixer un problème très spécifique avec MaBM.

Je me demandais s'il tu étais prêt à prêter tes identifiants à @mxgnr pour qu'il puisse vérifier si son intégration pour le Manifest V3 fonctionne correctement. Nous n'avons malheureusement pas de meilleur solution pour tester ces intégrations.

Ceci permettrait d'être compatible avec le navigateur Google Chrome.

@mxgnr, Si Kevin répond positivement, pourrais-tu lui fournir une adresse de contact ?

Merci à vous deux !

@Write
Copy link
Copy Markdown
Collaborator

Write commented Nov 27, 2025

Sans réponse, je serais d'avis que dans tous les cas on passe en MV3.

L'extension n'est pas disponible sur Chrome alors que c'est le navigateur le plus utilisé au monde.

Je trouve que cela serait plus pertinent pour étendre l'accès d'usage de cette extension dans tous les cas, et ce, même si MaBM et consort ne fonctionnent pas à la release de la MV3.

Est-ce qu'autrement, tout est ok pour un build firefox & chrome pour toi @mxgnr ?

Merci !

@mxgnr
Copy link
Copy Markdown
Contributor Author

mxgnr commented Dec 26, 2025

Sans réponse, je serais d'avis que dans tous les cas on passe en MV3.

L'extension n'est pas disponible sur Chrome alors que c'est le navigateur le plus utilisé au monde.

Je trouve que cela serait plus pertinent pour étendre l'accès d'usage de cette extension dans tous les cas, et ce, même si MaBM et consort ne fonctionnent pas à la release de la MV3.

Est-ce qu'autrement, tout est ok pour un build firefox & chrome pour toi @mxgnr ?

Merci !

Hello, je vais rebase ma branche avec celle par défaut histoire d'être à jour et refaire quelques tests.

Je ne suis pas contre l'idée de publier ce PoC mv3, en revanche je recommanderai de bumper la release en version majeure (3.0) et de la publier en Bêta tant que le système d'auth en referrer n'a pas été pleinement testé et éprouvé, dans un premier temps sur le Chrome Web Store. On peut également publier une release 3.0 Bêta pour Firefox mais étant donné que le store Firefox add-ons n'accepte pas la distribution de versions Bêta, elle ne sera disponible que sur ce repo, à installer manuellement.

Qu'en pensez-vous ?

@Write
Copy link
Copy Markdown
Collaborator

Write commented Feb 16, 2026

Je comprends, bon notre versioning est un peu un nightmare, mais en gros il doit représenter l'année. Ce n'était pas le cas pour la fin de 2025 car j'ai du push en 2.6, avec un workaround spécifique pr que toutes les releases en 2026 soient obligatoirement au dessus des 2.6 de 2025... enfin bref ceci étant dit....

Je ne suis pas fan de bump en "3.0" je préfère simplement garder notre versioning, maintenant qu'il se "stabilise" enfin.
Cependant la bêta Chrome est intéressante et je vais me pencher dessus.

@Write
Copy link
Copy Markdown
Collaborator

Write commented Mar 26, 2026

Hello,

La branche MV3 existe enfin https://github.com/lovasoa/ophirofox/tree/mv3
Avec un workflow associé : https://github.com/lovasoa/ophirofox/blob/master/.github/workflows/mv3.yml

Je n'ai pas du tout trouvé comment ignorer une erreur spécifique du web-ext lint donc pour le moment warning-as-error est supprimé ^^'

Le build MV3 qui se charge sur Chrome sans erreur : https://github.com/lovasoa/ophirofox/releases/tag/mv3-2.6.10326.222 que je pense tenter de publier en bêta sur Chrome Store comme mentionné précédemment

EDIT : Après réflexion je ne vois pas trop l'utilité de passer par une bêta, en l'état l'extension n'est quasi pas utilisable par les users Chrome, vue que non compatible mv3... je me demande pourquoi pas bump directement, juste pour Chrome. Dans tous les cas bon...

EDIT : Bon bah Chrome a accepté l'extension mv3 quasi-instantanément, rien à voir avec Mozilla qui met actuellement 1 mois pour valider une release...

Vous pouvez donc l'installer ici directement : chromewebstore.google.com/detail/ophirofox/mmmjkgckgcpankonbgbianpnfenbhodf

@lovasoa
Copy link
Copy Markdown
Owner

lovasoa commented Mar 26, 2026

Bravo et merci @Write !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants