Firefox ha comenzado a probar la tercera versión del manifiesto de Chrome

Mozilla ha anunciado que ha comenzado a probar la implementación de Firefox de la tercera versión del manifiesto de Chrome, que define las capacidades y recursos disponibles para los complementos escritos utilizando la API WebExtensions. Para probar la tercera versión del manifiesto en Firefox 101 beta, debe configurar el parámetro "extensions.manifestV3.enabled" en verdadero y el parámetro "xpinstall.signatures.required" en falso en la página about:config. Para instalar complementos, puede utilizar la interfaz about:debugging. Está previsto que la tercera versión del manifiesto esté habilitada de forma predeterminada a finales de año.

A partir de la versión 57, Firefox pasó por completo a utilizar la API WebExtensions para desarrollar complementos y dejó de admitir la tecnología XUL. La transición a WebExtensions hizo posible unificar el desarrollo de complementos con las plataformas Chrome, Opera, Safari y Edge, simplificó la transferencia de complementos entre diferentes navegadores web y permitió utilizar completamente el modo multiproceso de operación (los complementos de WebExtensions se pueden ejecutar en procesos separados, aislados del resto del navegador). Para unificar el desarrollo de complementos con otros navegadores, Firefox proporciona compatibilidad casi total con la segunda versión del manifiesto de Chrome.

Chrome está trabajando actualmente para pasar a la versión 2023 del manifiesto y la compatibilidad con la versión XNUMX dejará de ser compatible en enero de XNUMX. Debido a que la tercera versión del manifiesto ha sido criticada y romperá muchos bloqueos de contenido y complementos de seguridad, Mozilla ha decidido alejarse de la práctica de garantizar la compatibilidad total con el manifiesto en Firefox e implementar algunos cambios de manera diferente.

El principal descontento con la tercera versión del manifiesto está relacionado con la traducción al modo de solo lectura de la API webRequest, que hizo posible conectar sus propios controladores que tienen acceso completo a las solicitudes de red y pueden modificar el tráfico sobre la marcha. Esta API se utiliza en uBlock Origin y muchos otros complementos para bloquear contenido inapropiado y brindar seguridad. En lugar de la API webRequest, la tercera versión del manifiesto ofrece una API declarativaNetRequest de capacidad limitada, que proporciona acceso a un motor de filtrado integrado que procesa de forma independiente las reglas de bloqueo, no permite el uso de sus propios algoritmos de filtrado y no permiten establecer reglas complejas que se superponen entre sí dependiendo de las condiciones.

En la implementación de la tercera versión del manifiesto propuesta en Firefox, se agregó una nueva API declarativa para el filtrado de contenido, pero a diferencia de Chrome, no dejaron de soportar el antiguo modo de funcionamiento de bloqueo de la API webRequest. Otras características de la nueva implementación del manifiesto en Firefox incluyen:

  • El manifiesto define el reemplazo de páginas en segundo plano con la opción Service Workers, que se ejecuta como procesos en segundo plano (Background Service Workers). Para garantizar la compatibilidad, Firefox implementará este requisito, pero ofrecerá adicionalmente un nuevo mecanismo de páginas de eventos, que es más familiar para los desarrolladores web, no requiere una reelaboración completa de los complementos y elimina las limitaciones asociadas con el uso de Service Workers. Las páginas de eventos permitirán que las adiciones de páginas de fondo existentes cumplan con los requisitos de la tercera versión del manifiesto, manteniendo al mismo tiempo el acceso a todas las capacidades necesarias para trabajar con el DOM. En la implementación del manifiesto disponible para pruebas en Firefox, actualmente solo se admiten páginas de eventos y se promete agregar soporte para una solución basada en Service Workers más adelante. Apple apoyó la propuesta e implementó páginas de eventos en Safari Technology Preview 136.
  • El nuevo modelo de solicitud de permiso granular: el complemento no podrá activarse para todas las páginas a la vez (se eliminó el permiso "all_urls"), pero solo funcionará en el contexto de la pestaña activa, es decir. el usuario deberá confirmar que el complemento funciona para cada sitio. En Firefox, todas las solicitudes para acceder a los datos del sitio se considerarán opcionales, y la decisión final sobre conceder el acceso la tomará el usuario, quien podrá decidir de forma selectiva a qué complemento otorgar acceso a sus datos en un sitio en particular.
  • Cambio en el manejo de solicitudes de origen cruzado: de acuerdo con el nuevo manifiesto, los scripts de procesamiento de contenido estarán sujetos a las mismas restricciones de permiso que para la página principal en la que están incrustados estos scripts (por ejemplo, si la página no tiene acceso al API de ubicación, los complementos del script tampoco recibirán este acceso). Este cambio está completamente implementado en Firefox.
  • API basada en promesas. Firefox ya admite esta API y la moverá al espacio de nombres “chrome.*” para la tercera versión del manifiesto.
  • Prohibir la ejecución de código descargado de servidores externos (estamos hablando de situaciones en las que el complemento carga y ejecuta código externo). Firefox ya utiliza bloqueo de código externo y los desarrolladores de Mozilla han agregado técnicas adicionales de seguimiento de descargas de código que se ofrecen en la tercera versión del manifiesto. Para los scripts de procesamiento de contenido, se proporciona una política de restricción de acceso al contenido separada (CSP, Política de seguridad de contenido).

Fuente: opennet.ru

Añadir un comentario