Extensión de navegador AdGuard v4.2: lista para MV3
La nueva versión de la extensión del navegador AdGuard ha experimentado varios cambios significativos, aunque no se noten de inmediato. Hemos reescrito todo el código de filtrado en TypeScript y lo hemos trasladado a una nueva biblioteca separada. Esto nos permite prepararnos para una transición perfecta hacia el MV3.
El Manifest V3 (MV3) es la nueva API de extensiones de Chrome. Entre otras cosas, hará que sea considerablemente más difícil bloquear anuncios por parte de las extensiones del navegador, ya que limita el número de reglas de filtrado que pueden aplicarse. Puedes leer más sobre las limitaciones de Chrome y cómo hemos intentado adaptarlas para construir el primer bloqueador de anuncios del mundo basado en el Manifest V3.
Un poco de contexto
Hace algún tiempo, trasladamos el motor de filtrado de URLs de la extensión a una biblioteca separada llamada tsurlfilter
. El principal motivo para crear esta biblioteca es reutilizar la lógica de filtrado en otros productos (extensiones de navegador para Chrome y Firefox, convertidor de reglas para Safari, linter, etc.).
El tsurlfilter
tenía dos partes principales:
- Un motor de filtrado que encuentra la compatibilidad entre las URLs y las reglas de filtrado que lleva consigo.
- Una interfaz de programación específica de Chrome y Firefox responsable de aplicar las reglas encontradas.
Con el MV3, necesitamos mantener el código de filtrado no solo para diferentes navegadores, sino también para diferentes versiones del Manifest. Además, debemos ofrecer una transición sin problemas de MV2 a MV3 mientras que otros navegadores eliminan la antigua API. No tenemos prisa por migrar a MV3, ya que la nueva API es muy limitada.
Agregar una nueva lógica para resolver este problema en tsurlfilter
haría que la biblioteca fuera muy pesada, así que decidimos crear una nueva plataforma de software que ocultara la lógica específica de diferentes navegadores y manifests detrás de una API única y sencilla. La nueva biblioteca se llama tswebextension
.
La nueva biblioteca tswebextension
Con tswebextension
, será más fácil mantener y actualizar nuestros productos.
En la nueva versión de la extensión de navegador para Chrome y Firefox, rediseñamos por completo el servicio de fondo (background) utilizando tswebextension
. Esto permite una transición suave a MV3 en Chrome en futuras versiones.
Además, hemos actualizado la API de AdGuard para que también utilice tswebextension
.
La lista completa de cambios está disponible en GitHub. Y como siempre, nos encantaría escuchar tu opinión sobre nuestra extensión de navegador en las redes sociales (basta con buscar AdGuard en tu plataforma preferida) o a través de GitHub issues.