Hoy en día, los principales navegadores web cuentan con la posibilidad de instalar y ejecutar extensiones, pequeños programas que permiten ampliar indirectamente las funcionalidades básicas del navegador. Cada navegador tiene sus propias extensiones y, aunque muchas están disponibles tanto para Google Chrome como para Firefox u Opera, el desarrollo y el funcionamiento interno de las mismas es totalmente diferente. Mozilla quiere acabar con esto en su navegador, y por ello trabaja en implementar a su navegador un sistema de extensiones universal: las WebExtensions.
Actualmente, el navegador de Mozilla, Firefox, soporta dos tipos de extensiones diferentes: XUL y XPCOM. Estos dos tipos de extensiones son capaces de acceder hasta los apartados más internos del navegador, son muy potentes y pueden permitir al usuario y a los desarrolladores hacer prácticamente cualquier cosa, sin embargo, suponen un riesgo considerable para la seguridad, especialmente en estos tiempos.
Las WebExtensions funcionan por encima del propio navegador de manera que, aunque están un poco más limitadas que las extensiones XUL o XPCOM, su uso es mucho más seguro. Además, estas extensiones pueden funcionar, con unos cambios mínimos, en otros navegadores como Google Chrome.
Además del aumento de seguridad y la posibilidad de disponer de las mismas extensiones en los diferentes navegadores web disponibles, estas nuevas WebExtensions también aportan una serie de ventajas que los desarrolladores no deben pasar por alto.
Principales ventajas de las WebExtensions frente a las extensiones XUL / XPCOM
La primera de estas ventajas es la compatibilidad con otros navegadores. A la hora de desarrollar e implementar estas nuevas extensiones, Mozilla ha utilizado un gran número de APIs comunes para garantizar que un mismo código funciona en Firefox, Chrome y Opera simplemente introduciendo unos cambios mínimos en las extensiones.
Mozilla también quiere ayudar a los desarrolladores a convertir sus extensiones a formato WebExtension. Para ello pone a disposición de todos tanto las APIs como el SDK de las extensiones con el fin de poder portarlas lo más fácilmente. Si por alguna razón no fuera posible portar una función, Mozilla ofrece una encuesta a través de la cual pedir que se actualice la API para hacerla compatible con ella.
Las extensiones son mucho más simples, pudiendo centrar todas sus funcionalidades, que hasta ahora se llevaban a cabo con varios ficheros JavaScript, a tan solo dos: un script y un manifiesto que define la extensión.
Mozilla lleva un tiempo trabajando en Electrolysis, o multi-proceso, para su navegador. Esta característica mejora la estabilidad y la velocidad del navegador, sin embargo, causa problemas con las APIs de XUL y XPCOM, por lo que muchas extensiones no pueden funcionar con esta característica. Las WebExtensions ya están preparadas para funcionar sin problemas en arquitecturas multi-proceso, además de estar preparadas para futuros posibles cambios internos en el navegador.
Por último, una vez más, hacemos referencia a la seguridad. Además de tener acceso limitado a ciertos elementos del navegador, todos los permisos van declarados en el fichero manifest, por lo que el usuario podrá saber en todo momento a qué partes del navegador o de los datos podrá acceder la extensión, evitando que se pueda esconder en ella código malicioso.
Por el momento, tal como asegura Mozilla, el soporte completo para estas nuevas extensiones aún está lejos, sin embargo, Firefox 48, versión del navegador prevista para el 12 de julio de este mismo año, llegará con una primera integración de estas WebExtensions, la cual se seguirá mejorando y corrigiendo en futuras actualizaciones. Las APIs XUL y XPCOM están destinadas a desaparecer, aunque para ello aún debe pasar bastante tiempo y, sobre todo, se tienen que solucionar la gran cantidad de fallos conocidos en la API de estas nuevas extensiones.
¿Qué opinas de las WebExtensions? ¿Permitirán a Firefox seguir creciendo en el mercado o es un cambio innecesario?
Quizá te interese: