Google comenzó con las pruebas del Manifest V3. ¿Este será el final de uBlock Origin?
Hace algunos meses compartimos aquí en el blog la noticia sobre las intenciones de Google de eliminar los bloqueadores de publicidad de su navegador, esto debido a que los cambios introducidos en el Manifest V3 afectan principalmente a extensiones que tienen el propósito de bloquear la publicidad dentro del navegador.
Ahora, varios meses después Google ha comenzado a probar la tercera versión de su manifiesto (Manifest V3), en el cual el soporte para el nuevo manifiesto, define las capacidades y recursos proporcionados por los complementos, este Manifest V3 se ha agregado a las compilaciones experimentales de Chrome Canary.
El nuevo manifiesto se desarrolló como parte de una iniciativa para mejorar la seguridad, la privacidad y el rendimiento de los complementos (el objetivo principal es simplificar la creación de complementos seguros y de alto rendimiento y complicar la posibilidad de crear complementos lentos e inseguros).
El manifiesto aún se encuentra en la etapa de pruebas alfa iniciales, no es final y se ha agregado para dar a los desarrolladores la oportunidad de comenzar a experimentar y adaptar sus complementos. Se espera la activación del nuevo manifiesto el próximo año.
Mientras que la finalización del soporte para la segunda edición del manifiesto aún no se ha determinado. Para simplificar la migración de complementos al nuevo manifiesto, se ha preparado una lista de verificación que incluye los cambios que deben abordarse para los desarrolladores de complementos.
Aqui es importante recodar que la insatisfacción principal con el nuevo manifiesto está relacionada con la finalización del soporte para el modo de bloqueo de la API webRequest, que se limitará al modo de solo lectura.
Solo se hará una excepción para la edición Chrome for Enterprise, en la que se mantendrá el soporte para la API webRequest. Mozilla decidió no seguir el nuevo manifiesto y mantener Firefox utilizando completamente la API webRequest.
Raymond Hill, desarrollador líder de uBlock Origin, condeno esta decisión de Google. Según este último, el cambio a declarativeNetRequest API probablemente significaría la muerte de estas extensiones utilizadas al menos por 10 millones de usuarios de Internet.
“Si esta API declarativeNetRequest (más bien limitada) termina siendo la única forma en que los bloqueadores de contenido pueden realizar su tarea, básicamente significa que dos bloqueadores de contenido que he mantenido durante años, uBlock Origin y uMatrix ya no pueden a existir “
En lugar WebRequest API para filtrar el contenido en el nuevo manifiesto propuso una declaratoria de la API declarativeNetRequest.
Si la API webRequest le permitió conectar sus propios controladores con acceso completo a las solicitudes de red y capaz de modificar el tráfico sobre la marcha, la nueva API declarativeNetRequest proporciona acceso a un motor de filtrado incorporado universal listo para usar que procesa independientemente las reglas de bloqueo, no permite el uso de sus propios algoritmos de filtrado y no permite complejos reglas superpuestas entre sí según las condiciones.
El nuevo manifiesto también introduce otros cambios que afectan la compatibilidad con complementos. Entre ellos están:
- La transición a la ejecución de los trabajadores del servicio en forma de procesos en segundo plano, lo que requerirá que los desarrolladores cambien el código de algunas adiciones.
- Nuevo modelo granular de solicitud de permisos: el complemento no se puede activar de inmediato para todas las páginas (se elimina el permiso “all_urls“), pero solo funcionará en el contexto de la pestaña activa, es decir el usuario deberá confirmar el trabajo del complemento para cada sitio.
- Cambio en el procesamiento de solicitudes de origen cruzado: de acuerdo con el nuevo manifiesto, se aplicarán las mismas restricciones de autoridad a los scripts de procesamiento de contenido que a la página principal en la que se insertan estos scripts (por ejemplo, si la página no tiene acceso a la API de ubicación, entonces el script los complementos tampoco obtendrán este acceso).
- Prohibición de la ejecución de código descargado desde servidores externos (estamos hablando de situaciones en las que un complemento carga y ejecuta código externo).