277
STATUS.md
Archivo normal
277
STATUS.md
Archivo normal
@@ -0,0 +1,277 @@
|
||||
# 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
|
||||
Referencia en una nueva incidencia
Block a user