La empresa Mozilla ha publicado un plan para implementar en Firefox la tercera versión del manifiesto de Chrome, que define las capacidades y recursos disponibles para las extensiones. La tercera versión del manifiesto ha sido objeto de críticas por interrumpir el funcionamiento de muchas extensiones destinadas a bloquear contenido no deseado y garantizar la seguridad.
En Firefox se pretende implementar casi todas las capacidades y restricciones del nuevo manifiesto, incluyendo la API declarativa para la filtración de contenido (declarativeNetRequest), pero a diferencia de Chrome, Firefox no detendrá el soporte para el antiguo modo de bloqueo de la API webRequest, al menos hasta que la nueva API satisfaga completamente las necesidades de los desarrolladores de extensiones que utilizan la API webRequest. Este enfoque permitirá mantener la compatibilidad con las extensiones de Chrome sin romper la compatibilidad con las extensiones que dependen de la API webRequest.
Recordemos que la principal insatisfacción con el nuevo manifiesto está relacionada con la conversión de la API webRequest a un modo solo lectura, que permitía conectar controladores personalizados con acceso completo a las solicitudes de red y la capacidad de modificar el tráfico sobre la marcha. Esta API se utiliza en uBlock Origin y muchas otras extensiones destinadas a bloquear contenido no deseado y garantizar la seguridad. En lugar de la API webRequest, se ha propuesto una API declarativaNetRequest, que es limitada en su funcionalidad, proporcionando acceso a un motor integrado para la filtración que procesa de forma autónoma las reglas de bloqueo, no permitiendo el uso de algoritmos de filtración personalizados y sin permitir el establecimiento de reglas complejas que se superpongan entre sí dependiendo de las condiciones.
Se planea que el soporte para la tercera versión del manifiesto de Chrome en Firefox se ofrezca para pruebas a finales de 2021, y la implementación del nuevo manifiesto se prevé para principios de 2022. Entre las características de la implementación del nuevo manifiesto en Firefox se destacan:
- Proporcionar la API declarativaNetRequest, pero manteniendo la posibilidad de seguir utilizando la antigua API webRequest.
- El cambio en el manejo de las solicitudes de origen cruzado implica que, de acuerdo con el nuevo manifiesto, las mismas restricciones de permisos que se aplican a la página principal en la que se integran estos scripts también se trasladarán a los scripts de procesamiento de contenido (por ejemplo, si la página no tiene acceso a la API de geolocalización, el script de complemento tampoco obtendrá ese acceso). Parte de los cambios relacionados con las restricciones de solicitudes de origen cruzado ya están disponibles para pruebas en las compilaciones nocturnas de Firefox (en desarrollo como parte del proyecto Fission, que se puede activar en about:preferences#experimental) y se planea una implementación general para el tercer trimestre de 2021.
- Las páginas en segundo plano serán reemplazadas por Service workers, que funcionarán como procesos en segundo plano. Este cambio aún no está listo para comenzar las pruebas.
- API basada en Promises. Firefox ya admite este tipo de API en el espacio de nombres «browser.*» y lo trasladará al espacio de nombres «chrome.*» para la tercera versión del manifiesto.
- Un nuevo modelo granular de solicitud de permisos: el complemento no podrá activarse de inmediato para todas las páginas (se ha eliminado el permiso «all_urls»), y solo funcionará en el contexto de la pestaña activa, es decir, el usuario tendrá que confirmar el funcionamiento del complemento para cada sitio. Mozilla está trabajando para fortalecer el control de acceso, pero planea dar a los usuarios la capacidad de decidir si permiten que los complementos funcionen con diferentes pestañas.
- Prohibición de la ejecución de código cargado desde fuentes externas servidores (se trata de situaciones en las que un complemento carga y ejecuta código externo). Firefox ya aplica el bloqueo de código externo y los desarrolladores de Mozilla están listos para agregar técnicas adicionales de seguimiento de carga de código propuestas en la tercera versión del manifiesto. Se presentará una política de restricción de acceso al contenido (CSP, Content Security Policy) específica para los scripts de procesamiento de contenido, y las API existentes userScripts y contentScripts se reformularán para admitir extensiones basadas en Service Worker.
Fuente: opennet.ru
