Convertir XPI a CRX
Portar una extensión XPI de Firefox a un origen compatible con Chromium; luego empaquetarla e implementarla como CRX.
Cómo convertir un archivo xpi a crx
- Internet
- Calificación: 3.5/5
Un complemento de Firefox o Thunderbird suministrado como un XPI no se puede instalar directamente en Chrome, Edge, Brave u otros navegadores basados en Chromium. Un paquete CRX solo es útil después de que el código fuente de la extensión se haya hecho compatible con la plataforma de extensiones del navegador de destino.
Qué contienen los archivos XPI
XPI es el formato de paquete de complementos de Mozilla, usado principalmente por Firefox y Thunderbird. La mayoría de los XPIs actuales son archivos tipo ZIP que contienen manifest.json, JavaScript, HTML, iconos, archivos de localización y otros recursos de la extensión.
Firefox Add-ons distribuye XPIs firmados. Los complementos antiguos pueden, en su lugar, usar install.rdf, chrome.manifest, overlays de XUL o código de bootstrap heredado; estas tecnologías no son compatibles con Chromium y requieren una redesarrollo en lugar de un reprocesado.
Qué proporcionan los archivos CRX
CRX es el formato de paquete de extensiones firmado de Chromium. Los navegadores Chromium actuales crean paquetes CRX3, cuya clave de firma determina el ID de la extensión; conservar esa clave es necesario para publicar actualizaciones con el mismo ID.
CRX es principalmente útil para la implementación en navegadores gestionados y servicios de actualización privados. Chrome Web Store acepta un ZIP del código fuente compatible de la extensión para su publicación, no un CRX ya preparado, y las instalaciones normales de Chrome generalmente bloquean la instalación directa de archivos CRX descargados.
Preparar el código fuente de la extensión
- Copie y extraiga el XPI en una carpeta de trabajo. Use 7-Zip en Windows, o ejecute
unzip addon.xpi -d addon-srcen macOS o Linux. Renombrar una copia deaddon.xpiaaddon.ziptambién permite extraerla con herramientas estándar de archivos. - Verifique
manifest.json. Un complemento que contenga solo archivos heredados de Mozilla no puede convertirse en una extensión funcional de Chromium sin un port del código fuente. - Adapte el manifiesto y el código para el navegador de destino. Elimine o aísle configuraciones del manifiesto solo para Firefox como
browser_specific_settings, reemplace permisos y APIs no compatibles y use Manifest V3 cuando sea necesario. Las presentaciones actuales en Chrome Web Store requieren Manifest V3; la disponibilidad de Manifest V2 en navegadores Chromium depende de la versión del navegador y la política empresarial. - Revise las diferencias de API. El código de Firefox que usa
browser.*puede requerir cambios específicos owebextension-polyfillpara la compatibilidad con Chromium. Las APIs solo de Firefox, las páginas privilegiadas, el comportamiento del proxy, las capacidades de tema y los nombres de permisos pueden no tener un equivalente en Chromium. - Pruebe la carpeta descomprimida antes de empaquetar. Abra
chrome://extensions,edge://extensionso la página equivalente del navegador; habilite Developer mode; elija Load unpacked; y seleccioneaddon-src. Resuelva primero errores del manifiesto, del service-worker, de permisos y del tiempo de ejecución.
Crear el paquete CRX
Use el navegador Chromium de destino o Chromium para empaquetar la carpeta probada. En la página de extensiones, habilite Developer mode, seleccione Pack extension, elija la carpeta raíz de la extensión y cree una nueva clave o seleccione la clave existente .pem.
Una alternativa desde la línea de comandos es chromium --pack-extension=/full/path/addon-src. En Windows, use el ejecutable instalado del navegador, por ejemplo chrome.exe --pack-extension="C:\work\addon-src". El empaquetado crea un archivo .crx y, para un paquete nuevo, una clave privada .pem.
Mantenga el archivo PEM en privado y respaldado. Vuelva a compilar con la misma clave, por ejemplo chromium --pack-extension=/full/path/addon-src --pack-extension-key=/full/path/addon-src.pem. Una clave nueva crea un ID de extensión nuevo y rompe la continuidad de las actualizaciones.
Límites de despliegue y conversión
La firma de un XPI no se puede reutilizar para la firma CRX. Extraer un XPI proporciona archivos de código fuente, no una firma Chromium transferible ni una identidad de extensión.
Para la distribución pública en Chrome, cargue el ZIP del código fuente compatible en Chrome Web Store. Para dispositivos gestionados por una organización, implemente el CRX mediante la política de instalación de extensiones empresarial del navegador y, cuando sea necesario, una URL de actualización aprobada.
Los conversores de archivo en línea no pueden portar APIs del navegador, validar el comportamiento de la extensión ni generar una identidad de firma de uso prolongado utilizable. No suba el código fuente de la extensión ni claves privadas .pem a un sitio web de conversión; use herramientas locales como 7-Zip y Chrome, Edge o el empaquetador de extensiones de Chromium.
Simplemente, es imposible convertir XPI a CRX directamente.
Por lo tanto, no existe un convertidor de xpi a crx o un convertidor en línea gratuito de .xpi a .crx.
XPI vs CRX: comparación de formatos
Cómo se comparan los formatos XPI y CRX en las propiedades que más importan para esta conversión.
| Propiedad | .XPI Mozilla Add-on Package | .CRX Chrome Extension Package |
|---|---|---|
| Se abre en un navegador web | No | No |
| Legible como texto plano | No | No |
| Formato de texto | Ninguno | Ninguno |
| Imágenes | No | No |
| Elementos interactivos | Sí | Sí |
| Edición posterior | Limitado | No editable directamente |
| Tamaño de archivo típico | Pequeño | Muy pequeño |
| Estándar abierto | Sí | No |
| Introducido | 2004 | 2009 |
| Desarrollador | Mozilla Foundation | |
| Tipo MIME | application/x-xpinstall | — |