Extensión de navegador MV3 v0.4.0: ya es hora de una actualización
Hace casi un año y medio que lanzamos nuestra extensión basada en MV3, y ya es hora de traer grandes actualizaciones, después de todo, la era MV3 ya es una realidad. La extensión ahora se basa en nuestros mecanismos de filtrado actualizados, específicamente en TSWebExtension y TSUrlFilter. Para obtener más información sobre cómo logramos crear la primera extensión que funciona con el Manifest V3, consulta la publicación en nuestro blog.
5 razones por las cuales la extensión es mejor ahora
Nuevo esquema de prioridad de reglas
En el pasado, teníamos 4 prioridades diferentes para las reglas, pero la selección y priorización de reglas dentro de un grupo específico no estaban especificadas. Con nuestro nuevo esquema, calculamos el peso de una regla según los modificadores que contiene. Estos modificadores están clasificados por prioridad (de más baja a más alta), y su impacto en un ámbito de reglas determina su valor para la prioridad general. Este nuevo enfoque permite configurar una prioridad declarativa para una regla en la etapa de conversión, lo cual es particularmente útil en el nuevo MV3. Más detalles sobre el nuevo esquema de prioridades en nuestra Base de conocimientos.
Compatibilidad $badfilter
El modificador $badfilter
tiene el poder de desactivar cualquier otra regla. Así es como funciona: los desarrolladores de filtros tienen el poder de desactivar cualquier otra regla. Así es como funciona: los desarrolladores de filtros agregan una regla con este modificador, y cuando la extensión recibe una actualización dinámica, la regla con el modificador $badfilter
tiene prioridad sobre la regla a la que se aplicó.
En el pasado, no era posible desactivar una regla agregada anteriormente en el MV3. Como resultado, comenzamos agregando la compatibilidad $badfilter
sólo para reglas que ya estaban presentes en el mismo archivo. Si tenías una regla en un artículo y le añadías $badfilter
en otro artículo, no funcionaría.
Sin embargo, gracias a los comentarios de los desarrolladores de extensiones, el W3C Working Group enumeró e introdujo una nueva API que permite la desactivación de otras reglas declarativas. Esto fue el impulso inicial para que añadiéramos la compatibilidad $badfilter
para todas las reglas en todos los archivos. Para ello, rediseñamos el esquema de conversión de reglas para generar metadatos adicionales para los filtros y encontrar las reglas que deben ser desactivadas de forma dinámica.
Compatibilidad con el modificador $cookie
El modificador $cookie
te permite especificar el tiempo de vida (time to leave o TTL) de las cookies. La funcionalidad actual de MV3 no es suficiente para que este modificador funcione correctamente, por lo que hemos realizado algunas mejoras:
- Si la API MV3 es suficiente para que la regla de filtrado funcione, la convertimos en una regla declarativa y la añadimos a la configuración de reglas estáticas.
- En caso contrario, procesamos las cookies de forma adicional en nuestro mecanismo de filtrado TSUrlFilter y utilizamos la API browser.cookies para eliminar cookies que no deberían estar configuradas o reducir el tiempo de vida de las cookies.
Compatibilidad con los modificadores $elemhide
, $generichide
, $specifichide
Estos modificadores nos ayudan a desactivar reglas de filtrado cosmético para ciertos sitios web. MV3 aún no cuenta con estas herramientas, así que hemos añadido compatibilidad para los modificadores a través de nuestro mecanismo de filtrado TSUrlFilter. Este mecanismo crea una compatibilidad entre las reglas de extensión y las reglas de bloqueo, enviando solo las reglas excluidas al script de contenido.
Y todo lo demás
Hemos incluido compatibilidad con los siguientes modificadores:
$method
limita el alcance de las reglas a solicitudes que utilizan el conjunto especificado de métodos HTTP.$to
limita el alcance de las reglas a solicitudes realizadas a los dominios especificados y sus subdominios.$removeheader
: las reglas con este modificador están diseñadas para eliminar encabezados de solicitudes y respuestas HTTP.- El modificador
Sall
está compuesto por todos los modificadores del tipo contenido y$popup
. $csp
cambia completamente el comportamiento de la regla. Cuando se aplica a una regla, no bloqueará la solicitud correspondiente, sino que modificará los encabezados de respuesta.
Este es el primer bloqueador de anuncios que funciona con el Manifest V3, a pesar de todas sus restricciones. Nos ayudarás mucho al informar problemas con la extensión en GitHub.