Raymond Hill, autor del sistema de bloqueo de contenido no deseado uBlock Origin, ha publicado una extensión experimental para navegadores llamada uBO Minus, que implementa una versión de uBlock Origin traducida a la API declarativeNetRequest, cuyo uso está prescrito en la tercera versión del manifiesto de Chrome. A diferencia del uBlock Origin clásico, la nueva extensión utiliza las capacidades del motor integrado en el navegador para filtrar contenido y no requiere permisos para interceptar y modificar todos los datos de los sitios al instalarse.
La extensión aún no cuenta con un panel emergente ni páginas para ajustar la configuración, y su funcionalidad está limitada al bloqueo de solicitudes de red. Para funcionar sin permisos avanzados, están deshabilitadas funciones como los filtros cosméticos para reemplazar contenido en la página ('##'), la inyección de scripts en sitios ('##+js'), filtros para redirigir solicitudes ('redirect='), filtros de encabezados CSP (Content Security Policy) y filtros para eliminar parámetros de las solicitudes ('removeparam='). Por lo demás, la lista de filtros ofrecidos por defecto coincide completamente con el conjunto de uBlock Origin e incluye alrededor de 22,000 reglas.
Además, hace unos días se presentó una versión experimental del complemento para bloquear publicidad AdGuard — AdGuardMV3, también traducido a la API declarativeNetRequest y capaz de funcionar en navegadores que solo soportan la tercera edición del manifiesto de Chrome. El prototipo propuesto para pruebas ofrece toda la funcionalidad necesaria para usuarios habituales para bloquear publicidad, pero se queda atrás en comparación con la extensión de la segunda edición del manifiesto en cuanto a sus capacidades avanzadas, que podrían interesar a usuarios más experimentados.
En la nueva versión de AdGuard, se seguirá trabajando en el bloqueo de banners, widgets de redes sociales y elementos molestos, la publicidad en plataformas de video como YouTube y el bloqueo proactivo de solicitudes relacionadas con el seguimiento de movimientos. Entre las limitaciones se menciona el parpadeo de los anuncios debido a la demora en la aplicación de las reglas estéticas de 1.5 a 2 segundos, la pérdida de algunas capacidades relacionadas con la filtración de cookies, el uso de expresiones regulares y la filtración de parámetros de solicitudes (el nuevo API proporciona expresiones regulares simplificadas), así como la disponibilidad de estadísticas y registros de activación de filtros solo en modo desarrollador (Modo de Desarrollo).
También se menciona la posible reducción en el número de reglas debido a las limitaciones introducidas en la tercera versión del manifiesto. Si en el navegador hay instalada una única extensión que utiliza declarativeNetRequest, no hay problemas con las reglas estáticas, ya que se aplica un límite general para todas las extensiones que permite 330 mil reglas. Sin embargo, cuando hay varias extensiones, se aplica un límite de 30 mil reglas, que podría no ser suficiente. Para las reglas dinámicas, se ha establecido un límite de 5000 reglas, y para las expresiones regulares — de 1000 reglas.
A partir de enero de 2023, se planea dejar de dar soporte a la segunda versión del manifiesto en el navegador Chrome y hacer que la tercera versión sea obligatoria para todas las extensiones. Inicialmente, la tercera versión del manifiesto fue objeto de críticas debido a que afectaba el funcionamiento de muchas extensiones de bloqueo de contenido no deseado y garantía de seguridad. El manifiesto de Chrome define las capacidades y recursos que se otorgan a las extensiones. La tercera versión del manifiesto fue desarrollada en el marco de una iniciativa para mejorar la seguridad, privacidad y rendimiento de las extensiones. El objetivo principal de los cambios introducidos es simplificar la creación de extensiones seguras y de alto rendimiento, y dificultar la creación de extensiones inseguras y lentas.
La principal insatisfacción con la tercera versión del manifiesto está relacionada con la transición al modo de solo lectura de la API webRequest, que permitía conectar controladores propios con acceso completo a las solicitudes de red y la capacidad de modificar el tráfico en tiempo real. Esta API se utiliza en uBlock Origin, AdGuard y muchas otras extensiones para bloquear contenido no deseado y garantizar la seguridad. En lugar de la API webRequest, se ha propuesto en la tercera versión del manifiesto una API declarativa declarativeNetRequest, que ofrece acceso a un motor de filtrado interno, que procesa de forma autónoma las reglas de bloqueo y no permite usar algoritmos de filtrado propios ni establecer reglas complejas que se solapen en función de las condiciones.
Después de tres años de discusiones sobre la próxima tercera versión del manifiesto, Google ha tomado en cuenta muchos de los deseos de la comunidad y ha ampliado las capacidades de la API declarativeNetRequest originalmente proporcionada, añadiendo características solicitadas en las extensiones existentes. Por ejemplo, Google ha agregado soporte para el uso de varios conjuntos de reglas estáticas, filtrado por expresiones regulares, modificación de encabezados HTTP, cambios y adiciones dinámicas de reglas, eliminación y sustitución de parámetros de solicitudes, filtrado relacionado con pestañas y la creación de conjuntos de reglas específicos para ciertas sesiones.
Fuente: opennet.ru
