Extensiones en Firefox 66
Firefox 66 está actualmente en fase beta (se lanzará el 19 de Marzo) y, para los desarrolladores de extensiones, los cambios en la API de WebExtensions se centran principalmente en mejorar el rendimiento, la estabilidad y la experiencia de desarrollo. Un total de 30 problemas fueron resueltos en Firefox 66, incluyendo las contribuciones de varios miembros de la comunidad de voluntarios.
Principales mejoras en el rendimiento del almacenamiento
Quiero empezar destacando un cambio importante que tiene un impacto importante y positivo para los usuarios de Firefox. A partir de la versión 66, las extensiones utilizan IndexedDB como backend para el almacenamiento local en lugar de un archivo JSON. Esto resulta en una mejora significativa del rendimiento de muchas extensiones, a la vez que reduce la cantidad de memoria que utiliza Firefox.
Este cambio es completamente transparente para los desarrolladores de extensiones – no necesitas hacer nada para aprovechar esta mejora. Cuando los usuarios actualizan a Firefox 66, el archivo JSON de almacenamiento local se migra silenciosamente a IndexedDB. Todas las extensiones que utilizan la API storage.local() se dan cuenta inmediatamente de los beneficios, especialmente si almacenan pequeños cambios en grandes estructuras, como es el caso de los bloqueadores de anuncios, el tipo de extensión más común y popular utilizado en Firefox.
El siguiente video, usando Adblock Plus como ejemplo, muestra las mejoras significativas en el rendimiento que los usuarios de extensiones pueden ver.
Otras mejoras
El resto de las correcciones de errores y mejoras de las funciones no serán tan notables como el cambio al almacenamiento local, pero sin embargo aumentan la calidad general de la API de WebExtensions y hacen que la experiencia de desarrollo sea mejor. Algunos de los aspectos más destacados incluyen:
- Otra mejora fue introducida en Firefox para que utilice menos memoria cuando las extensiones cargan objetos desde el almacenamiento a la memoria.
- La página «Administrar accesos directos de extensión» utiliza ahora un icono predeterminado si no se ha incluido ningún icono en el archivo del manifiesto.
- Se ha corregido un caso en el que la API window.close() no cerraba correctamente las ventanas emergentes de las extensiones del navegador.
- Los puertos de extensión ya no se desconectan al cambiar de pestaña en el modo de diseño sensible.
- La protección de seguimiento de by-passing ahora funciona para los dominios que aparecen como permisos de host cuando esos dominios se utilizan como iframes dentro de una página de extensión.
- El indicador de permisos ya no aparece cuando los nuevos permisos de host añadidos son un subconjunto de los permisos de host que ya han sido concedidos.
- La API webRequest ahora arrojará un error si intenta utilizarla en modo de bloqueo sin declarar el permiso webRequestBlocking
- Los elementos del menú contextual de favoritos, añadidos en Firefox 59, ahora también aparecen en la barra lateral de favoritos y en la ventana de la biblioteca.
- Los archivos manifiestos sin un icono predeterminado específico ahora contienen un error.
- Firefox ya no emite una advertencia cuando la propiedad `background.persistent` está configurada como `true`.
Fuente | Blog Official de Mozilla