github AdguardTeam/AdguardBrowserExtension v4.2.151
4.2.151

latest releases: v5.0.164-beta, v5.0.164, v5.0.162...
15 months ago

Review status:

  • Chrome: Published (Phased release at 5%)
  • 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.

Changelog

Features

  • Clicking any part of the item opens a dropdown list #2347
  • Added new $method modifier to match requests by HTTP method
  • Reworked the rule prioritizing algorithm by adding more accurate calculation of weights for each rule type
  • Content scripts are injected into open tabs when the extension starts

Fixes

  • Scriptlets are not displayed in the request details bar of the Filtering log #2341
  • Cosmetic rules are not applied on tabs deactivated by Chrome Memory Saver #2342
  • Incorrect query parameters are inserted into the bug report #2352
  • Custom filters aren’t updated #2356
  • Filtering log does not display event types #2366
  • The rule editor cannot be opened as a tab in the main browser window #2379
  • Background tab is absent in the Filtering log #2381
  • The pre-compiler hints and filter list sources for Edge and Opera are incorrect #2380
  • Browsing Security cache is not cleared #2388
  • Stealth Mode and Browsing Security are applied if AdGuard protection is disabled #2389
  • Cosmetic rules are visible in the Filtering log, even though they were not applied #2387
  • Fixed handling of document requests from external workers (e.g. Chrome’s omnibox)
  • Fixed element collapser adding redundant styles to the element

Versions

  • Scriplets updated to v1.9.62
  • tswebextension updated to v0.3.6

How to install stable:

Don't miss a new AdguardBrowserExtension release

NewReleases is sending notifications on new releases.