278 líneas
8.4 KiB
Markdown
278 líneas
8.4 KiB
Markdown
# 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
|