Files
ca-archive/STATUS.md
2026-02-08 23:35:53 +01:00

8.4 KiB

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


⚠️ 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

  • 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


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:

{
  "apiKey": "user:12345678:123",          Ejemplo, no válido
  "apiSecret": "1234567890abcdef...",     Ejemplo, no válido
}

Acción requerida:

  1. Obtener credenciales reales de AMO:

  2. Actualizar archivo:

    nano private-keys/firefox-amo-credentials.json
    

    Reemplazar con tus credenciales reales

  3. Volver a firmar:

    ./build.sh --sign
    

Documentación: SIGNING.md#firefox


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


🎯 Recomendaciones de Instalación

Para Usuarios Finales

Mejor opción: Firefox Developer Edition

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

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:

# Carga temporal en Firefox
about:debugging → manifest.json

# O modo desarrollador en Edge/Brave
edge://extensions/ → "Cargar extensión sin empaquetar"

Construcción:

# Empaquetar sin firma
./build.sh

# Empaquetar con firma (requiere credenciales AMO reales)
./build.sh --sign

Validación:

# 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 Instalación rápida por navegador
INSTALL.md 📦 Guía de instalación completa
TROUBLESHOOTING.md 🐛 Problemas conocidos y soluciones
SIGNING.md 🔐 Sistema de firma AMO/Chrome
MIGRATION.md 📖 Cambios desde v2.x legacy
README.md 📄 Información general del proyecto
STATUS.md 📊 Este archivo - estado del proyecto

🆘 Soporte

Problemas documentados:

GitHub:


Última actualización: 8 de febrero de 2026
Autor: Classic Add-ons Archive Team
Licencia: MPL 2.0