# Migración a WebExtensions (Versión 3.0) ## Resumen de cambios La extensión Classic Add-ons Archive ha sido modernizada desde el sistema legacy XUL/XPCOM a WebExtensions para ser compatible con navegadores modernos Firefox (57+) y Chrome. ## Cambios principales ### 1. Sistema de manifiesto **ANTES (Legacy):** - `install.rdf` - Manifiesto XML - `chrome.manifest` - Registro de recursos chrome:// - `bootstrap.js` - Script de arranque con XPCOM **AHORA (WebExtensions):** - `manifest.json` - Manifiesto estándar WebExtensions (Manifest V2) - `background.js` - Script de fondo con APIs modernas ### 2. Protocolo de navegación **ANTES:** ``` caa:list caa:addon/some-addon caa:about ``` **AHORA:** ``` chrome-extension://.../content/ca-archive.html#list chrome-extension://.../content/ca-archive.html#addon/some-addon chrome-extension://.../content/ca-archive.html#about ``` La navegación ahora usa hash (#) en lugar de un protocolo personalizado. ### 3. Acceso a recursos **ANTES:** ```html ``` **Para producción:** Descargar sql.js localmente y actualizar las rutas en `db-webext.js`. ### Debugging **Firefox:** - `about:debugging` > Inspeccionar - Console del navegador: `Ctrl+Shift+J` **Chrome:** - `chrome://extensions/` > Detalles > Inspeccionar vistas: background page - DevTools: `F12` ### Testing 1. Abrir la extensión 2. Verificar que la base de datos se carga correctamente 3. Probar navegación: listados, búsquedas, detalles de addons 4. Verificar que las descargas funcionan ## Limitaciones conocidas ### WebExtensions vs Legacy 1. **Multi-proceso (e10s):** Ahora sólo funciona con e10s activado 2. **Protocolo personalizado:** Ya no disponible, usa rutas de extensión 3. **Modificación de AMO pages:** No puede inyectar hints en addons.mozilla.org 4. **Barra de herramientas:** Botón en ubicación fija, no personalizable 5. **Storage:** Base de datos limitada por cuota de storage del navegador ### Tamaño de base de datos Chrome/Firefox tienen límites de storage: - Chrome: ~10MB en `storage.local` (puede ampliarse con `unlimitedStorage`) - Firefox: Sin límite práctico en `storage.local` Si la base de datos es muy grande (>10MB), considerar: 1. Agregar permiso `unlimitedStorage` en manifest.json 2. Usar chunks/compresión 3. Almacenar en IndexedDB ## Migración de datos de usuario La nueva versión NO migra automáticamente datos de la versión legacy porque: 1. Las APIs de storage son completamente diferentes 2. La base de datos se descarga nueva en cada instalación 3. No hay configuraciones de usuario persistentes ## Próximos pasos ### Para publicar en stores 1. **Firefox Add-ons (AMO):** - Crear cuenta en addons.mozilla.org - Subir archivo .zip - Esperar revisión 2. **Chrome Web Store:** - Crear cuenta de desarrollador ($5 USD único) - Subir archivo .zip - Completar listing ### Mejoras futuras - [ ] Migrar a Manifest V3 (cuando Firefox tenga mejor soporte) - [ ] Offline-first: cachear más contenido - [ ] Sincronización de favoritos/bookmarks - [ ] Dark mode - [ ] Búsqueda mejorada con índices ## Soporte - GitHub: https://github.com/JustOff/ca-archive/ - Issues: https://github.com/JustOff/ca-archive/issues ## Licencia La extensión continúa bajo Mozilla Public License 2.0 (MPL-2.0).