Skip to content
This repository has been archived by the owner on Jul 12, 2024. It is now read-only.

Releases: AdguardTeam/AdGuardMV3

0.4.0

02 Feb 09:29
Compare
Choose a tag to compare

It’s been almost a year and a half since we released the MV3-based extension, and it’s time for a major update. After all, we are living in the MV3 reality. The extension now relies on our updated filter engines, TSWebExtension and TSUrlFilter. For a look back at how we managed to create the first extension that works with Manifest V3, see our blog.

Introducing our new rule prioritization scheme

In the past, we had 4 different priorities for rules, but the selection and prioritization of rules within a group was not clear. With our new scheme, we calculate the weight of a rule based on the modifiers it contains. These modifiers are ranked by priority, from lowest to highest, and their impact on a rule’s scope determines its overall priority weight. This new approach allows you to set a declarative priority for a rule at the conversion stage, which is particularly useful for the new MV3. More details about the new priority scheme can be found in our Knowledge Base.

Support for rules with the $badfilter modifier

The $badfilter modifier has the power to disable any other rule. Here’s how it works: filter developers add a rule with this modifier, and when the extension receives a dynamic update, the rule with the $badfilter modifier takes precedence over the rule it was applied to.

In the past, it wasn’t possible to disable a previously added rule in MV3. As a result, we initially added $badfilter support only for rules that were already present in the same file. If you had a rule in one file and added $badfilter to it in another file, it just wouldn’t work.

However, thanks to feedback from extension developers, the W3C Working Group has listened and introduced a new API that allows you to disable other declarative rules. This opened the door for us to add $badfilter support for all rules in all files. To achieve this, we revamped the rule conversion scheme to generate additional metadata for filters and dynamically find the rules that need to be disabled.

Support for the $cookie modifier

The $cookie modifier allows you to specify the time to live (TTL) of cookies. The current MV3 functionality is not sufficient for this modifier to work properly, so we've made some improvements:

  • If the MV3 API is sufficient for the filtering rule to work, we convert the rule to a declarative one and add it to the static ruleset
  • Otherwise, we additionally process cookies in our TSUrlFilter engine and use the browser.cookies API to remove cookies that should not be set or to reduce the lifetime of the cookies

Support for the $elemhide, $generichide, $specifichide exception modifiers

These modifiers help us to turn off cosmetic filtering for certain websites. MV3 doesn’t have such tools yet, so we added support for the modifiers through our TSUrlFilter filtering engine. This engine matches blocking rules to exception rules and sends only not excluded rules to the content script.

And some other modifiers as well

We’ve included support for the following modifiers:

  • $method limits the rule scope to requests that use the specified set of HTTP methods
  • $to limits the rule scope to requests made to the specified domains and their subdomains
  • $removeheader: rules with this modifier are intended to remove headers from HTTP requests and responses
  • Sall modifier is made of all content-types modifiers and $popup
  • $csp completely changes the rule behavior. When applied to a rule, the rule won’t block the matching request. Instead, response headers will be modified

Changelog

Scriptlets updated to v1.9.105

TSWebExtension updated to v1.0.10

TSUrlFilter updated to v2.2.11

Install stable version from store

Check out more info on this extension

0.3.13

05 Oct 11:26
Compare
Choose a tag to compare

In this version, we've fixed the display of some settings elements and added minor improvements. Now everything looks nice again and works great (as always).

Changelog

  • [Fixed] Settings options do not display intended description #15

Install stable version from store

Check out more info on this extension

0.3.12

29 Sep 12:10
Compare
Choose a tag to compare

We continue to improve our experimental extension that works with Manifest V3. The main changes of this release were made under the hood. The only thing you'll probably notice is that we fixed the more options menu color in the dark theme.

Install stable version from store

Check out more info on this extension

0.3.11

31 Aug 09:56
Compare
Choose a tag to compare

Today is the day: AdGuard publishes the world's first ad blocker built on Manifest V3. We put a lot of effort into developing an experimental browser extension that could meet all the requirements of Manifest V3 and block ads properly within its tight confines.

The task was not an easy one: the new API is still raw, some things are being finalized and do not work as intended. But we coped with it. Despite the limitations of Manifest V3, AdGuard MV3 still protects against ads and tracking quite well:

  • Blocks requests to trackers proactively
  • Hides banners, social widgets and other annoying elements
  • Blocks ads on video sharing platforms, including YouTube

Although the experimental extension is not as effective as its predecessor, most users won't feel the difference. The only thing you might notice is ad flickering due to the lag in the application of cosmetic rules.

Our goal with this prototype is to test the new approach and get your feedback. So please, try it out and let us know what can be improved. If you have any issue or suggestion, please let us know via GitHub issues.

Install stable version from store

Check out more info on this extension