AdGuard Browser extension 4.2.151
Release date: August 8, 2023
Review status:
- Chrome: Published
- AMO: In review
- Opera: In review
- Edge: In review The new version of AdGuard Browser Extension has undergone major changes that are not immediately noticeable. We’ve rewritten the whole filtering code in TypeScript and moved it into a new, separate library — this allows us to prepare the extension for a seamless transition to MV3.
A bit of background
Some time ago, we moved the extension's URL filtering engine into a separate library called tsurlfilter. The main purpose of the library is to reuse the filtering logic in our products (browser extensions for Chrome and Firefox, rule converter for Safari, linter, etc).
The tsurlfilter had two main parts:
A filtering engine that matches URLs against the rules loaded into it
A Chrome- and Firefox-specific programming interface responsible for applying the rules found
With MV3, we need to maintain filtering code not only for different browsers, but also for different manifest versions, as well as provide a seamless transition from MV2 to MV3 as browsers remove the old API. We're in no hurry to move to MV3 right away as its API is very limited.
Adding new logic to solve this problem in tsurlfilter would have made the library too heavy, so we decided to design a new software platform that would hide the logic specific to different browsers and manifests behind a single and simple API. The new library was named tswebextension.
The new tswebextension library
With tswebextension, it will be easier to maintain and update our products.
In the new version of the Browser Extension for Chrome and Firefox, we’ve completely redesigned the background service using tswebextension — this will allow us to seamlessly move to MV3 in Chrome in future major releases.
In addition, we’ve updated the AdGuard API that also uses tswebextension under the hood.