Convertir XPI en CRX
Porter une extension Firefox XPI vers une source compatible avec Chromium, puis la packager et la déployer en tant que CRX.
Comment convertir xpi en fichier crx
- Internet
- Notes: 3.5/5
Un module complémentaire pour Firefox ou Thunderbird fourni sous forme d’XPI ne peut pas être installé directement dans Chrome, Edge, Brave, ou d’autres navigateurs basés sur Chromium. Un package CRX est utile uniquement après que la source de l’extension a été rendue compatible avec la plateforme d’extensions du navigateur cible.
Ce que contiennent les fichiers XPI
XPI est le format de package de modules complémentaires de Mozilla, utilisé principalement par Firefox et Thunderbird. La plupart des XPIs actuels sont des archives basées sur ZIP contenant manifest.json, JavaScript, HTML, des icônes, des fichiers de localisation et d’autres ressources d’extension.
Les modules complémentaires pour Firefox sont distribués en XPIs signés. D’anciens modules complémentaires peuvent plutôt utiliser install.rdf, chrome.manifest, des superpositions XUL, ou un code de bootstrap hérité ; ces technologies ne sont pas prises en charge par Chromium et nécessitent une refonte plutôt qu’un simple empaquetage.
Ce que fournissent les fichiers CRX
CRX est le format de package d’extensions signé de Chromium. Les navigateurs Chromium actuels créent des packages CRX3, dont la clé de signature détermine l’ID de l’extension ; conserver cette clé est nécessaire pour publier des mises à jour sous le même ID.
CRX est principalement utile pour le déploiement sur des navigateurs gérés et les services privés de mise à jour. Le Chrome Web Store accepte un ZIP de la source d’extension compatible pour publication, et non un CRX préconstruit ; de plus, les installations Chrome normales bloquent généralement l’installation directe des fichiers CRX téléchargés.
Préparer la source de l’extension
- Copiez et extrayez l’XPI dans un dossier de travail. Utilisez 7-Zip sous Windows, ou exécutez
unzip addon.xpi -d addon-srcsur macOS ou Linux. Renommer une copie deaddon.xpienaddon.zippermet aussi l’extraction avec des outils d’archives standard. - Vérifiez
manifest.json. Un module complémentaire ne contenant que des fichiers Mozilla hérités ne peut pas devenir une extension Chromium fonctionnelle sans une adaptation de la base de code. - Adaptez le manifest et le code au navigateur cible. Supprimez ou isolez les paramètres de manifest propres à Firefox comme
browser_specific_settings, remplacez les permissions et API non prises en charge, et utilisez Manifest V3 lorsque requis. Les soumissions actuelles au Chrome Web Store nécessitent Manifest V3 ; la disponibilité de Manifest V2 dans les navigateurs Chromium dépend de la version du navigateur et de la politique d’entreprise. - Analysez les différences d’API. Le code Firefox utilisant
browser.*peut nécessiter des modifications ciblées ouwebextension-polyfillpour la compatibilité avec Chromium. Les API propres à Firefox, les pages privilégiées, le comportement du proxy, les capacités de thème et les noms de permissions peuvent ne pas avoir d’équivalent dans Chromium. - Testez le dossier décompressé avant l’empaquetage. Ouvrez
chrome://extensions,edge://extensions, ou la page équivalente du navigateur ; activez Developer mode ; choisissez Load unpacked ; et sélectionnezaddon-src. Résolvez d’abord les erreurs de manifest, de service-worker, de permissions et d’exécution.
Créer le package CRX
Utilisez le navigateur Chromium cible ou Chromium lui-même pour empaqueter le dossier testé. Dans la page des extensions, activez Developer mode, sélectionnez Pack extension, choisissez le dossier racine de l’extension, puis créez une nouvelle clé ou sélectionnez la clé .pem existante.
Une alternative en ligne de commande est chromium --pack-extension=/full/path/addon-src. Sous Windows, utilisez l’exécutable du navigateur installé, par exemple chrome.exe --pack-extension="C:\work\addon-src". L’empaquetage crée un fichier .crx et, pour un nouveau package, une clé privée .pem.
Conservez le fichier PEM privé et sauvegardé. Reconstruisez avec la même clé, par exemple chromium --pack-extension=/full/path/addon-src --pack-extension-key=/full/path/addon-src.pem. Une nouvelle clé crée un nouvel ID d’extension et rompt la continuité des mises à jour.
Limites de déploiement et de conversion
Une signature XPI ne peut pas être réutilisée pour la signature CRX. Extraire un XPI fournit des fichiers sources, pas une signature Chromium transférable ni une identité d’extension.
Pour la distribution publique sur Chrome, téléversez le ZIP de source compatible dans le Chrome Web Store. Pour les appareils gérés par une organisation, déployez le CRX via la politique d’installation d’extensions en entreprise du navigateur et, si nécessaire, via une URL de mise à jour approuvée.
Les convertisseurs d’archives en ligne ne peuvent pas adapter les API du navigateur, valider le comportement de l’extension, ni générer une identité de signature exploitable à long terme. Ne téléversez pas la source de l’extension ni les clés privées .pem vers un site de conversion ; utilisez plutôt des outils locaux comme 7-Zip et Chrome, Edge, ou l’empaqueteur d’extensions de Chromium.
En termes simples, il est impossible de convertir directement XPI en CRX.
Ainsi, il n'existe pas de convertisseur dit xpi en crx ni de convertisseur en ligne gratuit. Convertisseur xpi en .crx à trouver.
Comparaison du format XPI vs CRX
Comparaison entre les formats XPI et CRX sur les propriétés les plus importantes pour cette conversion.
| Propriété | .XPI Mozilla Add-on Package | .CRX Chrome Extension Package |
|---|---|---|
| S’ouvre dans un navigateur web | Non | Non |
| Lisible en texte brut | Non | Non |
| Mise en forme du texte | Aucun | Aucun |
| Images | Non | Non |
| Éléments interactifs | Oui | Oui |
| Modification ultérieure | Limité | Non modifiable directement |
| Taille de fichier typique | Petit | Très petit |
| Norme ouverte | Oui | Non |
| Date d’introduction | 2004 | 2009 |
| Développeur | Mozilla Foundation | |
| Type MIME | application/x-xpinstall | — |