# Estado del Proyecto - Classic Add-ons Archive v3.0 **Fecha:** 8 de febrero de 2026 **Versión:** 3.0.0 **Estado:** ✅ Modernizado a WebExtensions Manifest v2 --- ## ✅ Completado ### Migración a WebExtensions - ✅ Manifest v2 creado (`manifest.json`) - ✅ Background script modernizado (`background.js`) - ✅ Base de datos migrada a sql.js (`content/db-webext.js`) - ✅ HTML/JS actualizados (rutas relativas, hash routing) - ✅ Validación web-ext: 0 errores ### Sistema de Firma - ✅ Scripts de firma implementados (`build.sh`, `scripts/generate-keys.sh`) - ✅ Soporte para AMO (Firefox) con JWT - ✅ Soporte para Chrome CRX con RSA keys - ✅ web-ext instalado localmente (no requiere global) ### Documentación - ✅ [QUICK-START.md](QUICK-START.md) - Guía rápida de instalación - ✅ [INSTALL.md](INSTALL.md) - Instalación detallada - ✅ [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Problemas conocidos (Firefox sin firma, Chrome Manifest v2) - ✅ [SIGNING.md](SIGNING.md) - Sistema de firma AMO/Chrome - ✅ [MIGRATION.md](MIGRATION.md) - Cambios desde v2.x - ✅ [README.md](README.md) - Actualizado con info v3.0 --- ## ⚠️ Problemas Actuales ### 1. Firefox: No instala sin firma (RESUELTO EN DOCUMENTACIÓN) **Problema:** - Firefox Release NO permite deshabilitar `xpinstall.signatures.required` - Incluso con el flag en `false`, sigue requiriendo firma **Soluciones documentadas:** - ✅ **Opción 1 (Recomendada):** Firefox Developer Edition o Nightly - Descargar: https://www.mozilla.org/firefox/developer/ - Permite `xpinstall.signatures.required=false` - Instalación permanente sin necesidad de AMO - ✅ **Opción 2:** Carga temporal - `about:debugging` → "Cargar complemento temporal" - Se borra al cerrar Firefox, pero funciona inmediatamente - ✅ **Opción 3:** Firma con AMO (para distribución) - Requiere credenciales reales de AMO (ver siguiente sección) - `./build.sh --sign` genera `.xpi` firmado **Documentación:** [TROUBLESHOOTING.md#firefox](TROUBLESHOOTING.md#firefox-add-on-could-not-be-installed-because-it-is-not-signed-sin-poder-deshabilitar-firma) --- ### 2. Firma AMO: Requiere credenciales reales (PENDIENTE USUARIO) **Estado actual:** - ❌ Archivo `private-keys/firefox-amo-credentials.json` tiene credenciales de ejemplo - ❌ Error al firmar: "Unknown JWT iss (issuer)" - Status 401 **Motivo:** Las credenciales de ejemplo NO funcionan. Valores actuales: ```json { "apiKey": "user:12345678:123", ← ❌ Ejemplo, no válido "apiSecret": "1234567890abcdef...", ← ❌ Ejemplo, no válido } ``` **Acción requerida:** 1. Obtener credenciales reales de AMO: - https://addons.mozilla.org/developers/addon/api/key/ - Generar nuevo par de credenciales - Copiar "JWT issuer" (apiKey) y "JWT secret" (apiSecret) 2. Actualizar archivo: ```bash nano private-keys/firefox-amo-credentials.json ``` Reemplazar con tus credenciales reales 3. Volver a firmar: ```bash ./build.sh --sign ``` **Documentación:** [SIGNING.md#firefox](SIGNING.md#-paso-2-configurar-credenciales-de-firefox-amo) --- ### 3. Chrome: Manifest v2 bloqueado (RESUELTO EN DOCUMENTACIÓN) **Problema:** - Chrome 127+ (junio 2024) bloqueó Manifest v2 - Esta extensión usa Manifest v2 (necesario para sql.js con `'unsafe-eval'`) - Error: "Manifest version 2 is deprecated/not supported" **Estado de navegadores (2026):** | Navegador | Estado | Solución | |-----------|--------|----------| | Chrome 127+ | ❌ Bloqueado | Usa Firefox, Edge o Brave | | Edge | ✅ Funciona | Modo desarrollador | | Brave | ✅ Funciona | Modo desarrollador | | Firefox | ✅ Completo | Soporte Manifest v2 indefinido | **Migración a Manifest v3:** - ❌ No implementada (requiere reescritura significativa) - ⚠️ Incompatibilidad: sql.js requiere `'unsafe-eval'` (prohibido en v3) - 💡 Solución futura: Migrar a IndexedDB nativa en lugar de sql.js **Documentación:** [TROUBLESHOOTING.md#chrome](TROUBLESHOOTING.md#chrome-manifest-version-2-is-deprecated-o-not-supported) --- ## 🎯 Recomendaciones de Instalación ### Para Usuarios Finales **Mejor opción:** Firefox Developer Edition ```bash 1. Descargar: https://www.mozilla.org/firefox/developer/ 2. about:config → xpinstall.signatures.required → false 3. ./build.sh 4. Arrastra dist/ca-archive-3.0.0.xpi a Firefox ``` ✅ Instalación permanente sin necesidad de firma **Alternativa rápida:** Carga temporal en Firefox ```bash 1. about:debugging#/runtime/this-firefox 2. "Cargar complemento temporal" 3. Selecciona manifest.json ``` ⚠️ Se desinstala al cerrar Firefox **Para Chrome:** No compatible (usa Firefox, Edge o Brave) --- ### Para Desarrolladores **Testing local:** ```bash # Carga temporal en Firefox about:debugging → manifest.json # O modo desarrollador en Edge/Brave edge://extensions/ → "Cargar extensión sin empaquetar" ``` **Construcción:** ```bash # Empaquetar sin firma ./build.sh # Empaquetar con firma (requiere credenciales AMO reales) ./build.sh --sign ``` **Validación:** ```bash # Lint con web-ext npm run lint # Verificar sintaxis manifest python3 -m json.tool manifest.json ``` --- ## 📦 Archivos Generados ### Build sin firma (`./build.sh`) ``` dist/ ├── ca-archive-3.0.0.xpi # Firefox (sin firma) └── ca-archive-3.0.0.zip # Chrome/Edge/Brave (sin firma) ``` ### Build con firma (`./build.sh --sign`) ``` dist/ ├── ca-archive-3.0.0-signed.xpi # Firefox firmado (AMO) ├── ca-archive-3.0.0.crx # Chrome firmado (CRX) ├── firefox-sign.log # Log de firma Firefox └── chrome-sign.log # Log de firma Chrome ``` --- ## 🔑 Archivos de Claves (Privados) ``` private-keys/ ├── chrome-extension.pem # Clave RSA privada Chrome ├── chrome-extension-id.txt # Extension ID calculado └── firefox-amo-credentials.json # Credenciales AMO ``` ⚠️ **NUNCA** subir estos archivos a Git (ya están en `.gitignore`) --- ## 📊 Estadísticas del Proyecto - **Líneas de código:** ~2500 (sin contar DB) - **Archivos creados/modificados:** 20+ - **Documentación:** 7 archivos Markdown - **Scripts:** 3 bash scripts + npm scripts - **Base de datos:** ca-archive-19030501.sqlite (~50MB) - **Addons catalogados:** 19,450 extensiones - **Versiones totales:** 93,598 versiones --- ## 🚀 Próximos Pasos ### Inmediatos 1. **Instalar en Firefox Developer:** - [ ] Descargar Firefox Developer Edition - [ ] Configurar `xpinstall.signatures.required=false` - [ ] Instalar extensión con `./build.sh` 2. **Firmar con AMO (opcional, para distribución):** - [ ] Obtener credenciales reales de AMO - [ ] Actualizar `private-keys/firefox-amo-credentials.json` - [ ] Ejecutar `./build.sh --sign` - [ ] Distribuir `.xpi` firmado ### Futuro - [ ] Considerar migración a Manifest v3 cuando Firefox lo requiera - [ ] Evaluar migrar de sql.js a IndexedDB nativa (eliminar `'unsafe-eval'`) - [ ] Publicar en AMO (Firefox Add-ons Store) - [ ] Actualizar base de datos con nuevos addons (si aplica) - [ ] Agregar tests automatizados - [ ] CI/CD con GitHub Actions --- ## 📚 Documentación Completa | Archivo | Propósito | |---------|-----------| | [QUICK-START.md](QUICK-START.md) | ⚡ Instalación rápida por navegador | | [INSTALL.md](INSTALL.md) | 📦 Guía de instalación completa | | [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | 🐛 Problemas conocidos y soluciones | | [SIGNING.md](SIGNING.md) | 🔐 Sistema de firma AMO/Chrome | | [MIGRATION.md](MIGRATION.md) | 📖 Cambios desde v2.x legacy | | [README.md](README.md) | 📄 Información general del proyecto | | [STATUS.md](STATUS.md) | 📊 Este archivo - estado del proyecto | --- ## 🆘 Soporte **Problemas documentados:** - Firefox sin firma → [TROUBLESHOOTING.md](TROUBLESHOOTING.md#firefox-add-on-could-not-be-installed-because-it-is-not-signed-sin-poder-deshabilitar-firma) - Chrome Manifest v2 → [TROUBLESHOOTING.md](TROUBLESHOOTING.md#chrome-manifest-version-2-is-deprecated-o-not-supported) - Firma AMO 401 → [SIGNING.md](SIGNING.md#error-unknown-jwt-iss-issuer---status-401) - Base de datos no carga → [TROUBLESHOOTING.md](TROUBLESHOOTING.md#loading-database-for-the-first-time-se-queda-cargando) **GitHub:** - Issues: https://github.com/JustOff/ca-archive/issues - Discusiones: https://github.com/JustOff/ca-archive/discussions --- **Última actualización:** 8 de febrero de 2026 **Autor:** Classic Add-ons Archive Team **Licencia:** MPL 2.0