Depot d'extensions

← Documentation

Mettre à jour une extension Firefox

La contrainte à connaître avant tout

Chaque nouvelle version doit être signée par Mozilla, pas seulement la première. Firefox Release et ESR refusent d'installer un .xpi non signé, y compris en distribution interne et y compris par stratégie de groupe. Le dépôt ne peut pas fournir cette signature.

Le passage par addons.mozilla.org en canal unlisted (l'extension reste privée, absente du catalogue public) est donc une étape obligatoire de chaque mise à jour. C'est la plus longue : quelques minutes en général, la validation étant automatisée.

Ce qui se passe côté navigateur

Firefox lit browser_specific_settings.gecko.update_url dans le manifeste de l'extension installée, interroge cette URL environ toutes les 24 heures, compare le numéro de version annoncé, télécharge update_link, vérifie la signature Mozilla, puis installe.

Ce point est la source d'erreur la plus fréquente : c'est le manifeste de l'extension déjà déployée qui pilote les mises à jour, pas la stratégie de groupe. La clé install_url d'ExtensionSettings ne sert qu'à l'installation initiale. Si la version installée sur les postes ne déclare pas d'update_url, elle ne se mettra jamais à jour depuis ce dépôt — il faudra la redéployer une fois pour amorcer le mécanisme.

Le manifeste doit donc contenir, dès la version déployée :

"browser_specific_settings": {
  "gecko": {
    "id": "extension@exemple.fr",
    "update_url": "https://extensions.kernelpanics.fr/e/<slug>/updates.json"
  }
}

L'id doit rester strictement identique d'une version à l'autre.

Procédure

  1. Incrémenter version dans le manifest.json.
  2. Vérifier que browser_specific_settings.gecko.id est inchangé et que update_url pointe bien vers ce dépôt.
  3. Soumettre sur addons.mozilla.org en canal unlisted, puis télécharger le .xpi signé une fois la validation terminée.
  4. Dans le dépôt, ouvrir l'extension puis Publier une version et déposer le .xpi signé. Le numéro de version et l'identifiant sont relus dans le manifeste du paquet.
  5. Vérifier la publication.

Le dépôt détecte un .xpi dépourvu de signature Mozilla et l'annonce au moment du dépôt : si cet avertissement apparaît, le fichier déposé est le paquet de développement, pas celui récupéré depuis AMO.

Vérifier la publication

curl -s https://extensions.kernelpanics.fr/e/<slug>/updates.json
curl -sI https://extensions.kernelpanics.fr/dl/<slug>/latest.xpi

Contrôler que version est la nouvelle, que la clé de addons — l'identifiant — est inchangée, et que update_link est bien en HTTPS.

Forcer la mise à jour sur un poste

about:addons, engrenage en haut de la liste, Rechercher des mises à jour.

about:policies affiche les stratégies réellement appliquées, et about:debugging la version exacte de l'extension chargée.

Délai de propagation sur le parc

Jusqu'à 24 heures, l'intervalle de vérification de Firefox étant nettement plus long que celui des navigateurs Chromium. Prévoir ce délai dans les plannings de déploiement, ou forcer la vérification par script sur les postes concernés.

Retour arrière

Comme pour Chromium, Firefox ne redescend pas vers une version inférieure. Épingler une ancienne version dans le dépôt arrête la propagation mais ne répare pas les postes déjà à jour. Pour cela, publier une version supérieure contenant l'ancien code — ce qui suppose de la faire signer à nouveau par Mozilla.

À ne jamais faire

Action Conséquence
Changer gecko.id Firefox considère qu'il s'agit d'une autre extension ; l'ancienne reste installée et figée.
Omettre update_url du manifeste Firefox interroge Mozilla au lieu du dépôt : aucune mise à jour n'arrive jamais.
Déposer un .xpi non signé Les postes refusent l'installation.
Servir le dépôt en HTTP Firefox rejette un update_url ou un update_link en clair.

Diagnostic

Symptôme Cause probable
Aucune mise à jour après 24 h update_url absent du manifeste de la version installée, ou version non incrémentée.
Le téléchargement a échoué URL injoignable depuis le poste, ou certificat TLS non reconnu.
L'extension n'a pas pu être vérifiée Paquet non signé par Mozilla, ou modifié après signature.
L'extension n'est pas installée du tout ExtensionSettings absent ou mal formé — vérifier dans about:policies.
Une seconde extension apparaît L'identifiant gecko.id a changé entre deux versions.

Autres documents : Publier une extension pour la première fois · Mettre à jour une extension Chrome, Edge ou Brave · Installer et exploiter le dépôt