Extensão de navegador AdGuard v4.2: pronta para o MV3
A nova versão da extensão de navegador AdGuard passou por várias mudanças significativas, mas que não se notam logo de cara. Nós reescrevemos todo o código de filtragem em TypeScript e o movemos para uma nova biblioteca separada. Isso permite que nos preparemos para uma transição tranquila para o MV3.
O Manifest V3 (MV3) é a nova API de extensões do Chrome. Entre outras coisas, ele fará com que seja significativamente mais difícil bloquear anúncios por parte das extensões de navegador, já que limita o número de regras de filtragem que podem ser aplicadas. Você pode ler mais sobre as limitações do Chrome e como nós tentamos adaptá-las para construir o primeiro bloqueador de anúncios do mundo baseado no Manifest V3.
Um pouco de contexto
Há algum tempo, nós movemos o mecanismo de filtragem de URLs da extensão para uma biblioteca separada chamada tsurlfilter
. O principal motivo para a criação desta biblioteca é reusar a lógica de filtragem em outros produtos (extensões de navegador para Chrome e Firefox, conversor de regras para Safari, linter etc).
O tsurlfilter
tinha duas partes principais:
- Um mecanismo de filtragem que encontra a compatibilidade entre os URLs e as regras de filtragem que carrega em si
- Uma interface de programação específica do Chrome e Firefox responsável por aplicar as regras encontradas
Com o MV3, nós precisamos manter o código de filtragem não apenas para navegadores diferentes, mas também para versões diferentes do Manifest. Além disso, precisamos oferecer uma transição perfeita do MV2 para MV3 enquanto outros navegadores removem a velha API. Nós não estamos com pressa para nos mudarmos ao MV3, já que a nova API é muito limitada.
Adicionar uma nova lógica para resolver este problema na tsurlfilter
deixaria a biblioteca muito pesada, então decidimos criar uma nova plataforma de software que ocultaria a lógica específica de diferentes navegadores e manifests por trás de uma única e simples API. A nova biblioteca foi chamada de tswebextension
.
A nova biblioteca tswebextension
Com a tswebextension
, será mais fácil manter a atualizar nossos produtos.
Na nova versão da extensão de navegador para Chrome e Firefox, nós redesenhamos completamente o serviço de background usando o tswebextension
. Isso permite uma mudança tranquila para o MV3 no Chrome em lançamentos maiores.
Além disso, nós atualizamos a API AdGuard que também usa a tswebextension
.
A lista de mudanças completa está disponível no GitHub. E, como sempre, vale lembrar que estaremos muito felizes em ouvir a sua opinião sobre a nossa extensão de navegador em redes sociais (basta buscar AdGuard na sua plataforma preferida) ou via GitHub issues.