Releases: AdguardTeam/AdguardBrowserExtension
Release list
5.4.3.1
Libraries updated, small bugs fixed. Check if the Internet looks cleaner — it should.
Changelog
- Fixed false-negative CSS selector validation for comma-containing selectors
- Fixed wrong version in Firefox standalone
How to install MV3 stable:
How to install MV3 beta:
How to install MV2 stable:
5.4.3.1 beta
Libraries updated, small bugs fixed. Check if the Internet looks cleaner — it should.
Changelog
- Fixed false-negative CSS selector validation for comma-containing selectors
- Fixed wrong version in Firefox standalone
How to install beta:
5.4.2.0
5.4.2.0 beta
5.4.1.3
This update improves filtering reliability, makes settings easier to share, and adds helpful popups to keep things clear and predictable.
Filtering: Faster, stronger, better
Custom filters in MV3 can now update independently from extension updates again, so ad blocking stays accurate and responds to changes more quickly.
We also fixed an issue where the extension would mistakenly accept HTML pages as filter lists when you added a custom filter by URL, causing the filter to fail silently. The extension now validates sources properly, preventing situations where a filter appears to be added but doesn’t actually work.
Beyond filter improvements, we’ve refined the Allowlist — the list of sites where blocking is disabled. Previously, if you added a full page URL (for example, copied straight from your browser’s address bar), the Allowlist might ignore it and keep blocking ads on that site. That’s no longer an issue — the extension now extracts the domain automatically, so your exclusions work as expected.
Settings import: Show, don’t tell
You can now generate a URL containing your full extension configuration. This makes it easy to set up AdGuard on a new device or after reinstalling your browser. Share the link with a friend, colleague, or support team, and they’ll see your exact setup instantly.
If you’re an active GitHub user, you can now import settings directly from Issues — especially useful for filter developers and those helping test fixes.
Interface: Better prompted than puzzled
We've added a few small improvements to prevent confusion and make the extension behave more predictably.
Warning for Opera users. Opera doesn’t grant extensions access to search engine pages by default, which prevents AdGuard from blocking ads in search results. The extension popup now displays a notice explaining that you need to allow access to search pages in your browser settings.
Confirmation for Invert Allowlist. The Invert Allowlist feature reverses how the extension works: blocking is disabled everywhere except sites on the list. To prevent accidental activation, we’ve added a confirmation dialog that explains what will happen when you enable it.
Changelog
Improvements
- Added beta suffix to the version in issue reports #3330
- Implemented handling of speculative prerender requests
- Added confirmation modal for inverting allowlist
- Enabled independent updates of custom filters in MV3 without waiting for extension updates #2944
- Added warning notification in Opera when Allow access to search page results permission is not granted #2485
- Added support for importing settings via
adguard:import_user_configurationlinks on reports.adguard.com - HTTP
Last-Modifiedheader is now used as fallback whenTimeUpdatedmetadata is missing #3407 - Improved allowlist editor: now normalizes entries by extracting domains from URLs #3430
- Updated issue report URL format to v4
- Cookie self-destruct stealth parameters are now MV2-only in issue reports (not supported on MV3)
- Added ROList support to Filters in MV3 #3473
- Added Share settings button to the main screen
- Updated @adguard/filters-downloader to v2.4.4
- Updated @adguard/dnr-rulesets to v4.2.1
Fixes
- Update indicator arrow flickers when opening the popup #3351
$badfilterincorrectly negates rules with different$denyallowvalues #3428- Filtering log window size and position are not restored with zoom #3255
- Blocking page is incorrectly displayed for search results #3414
- Invalid CSS selectors in element hiding rules affect all injected styles #3329
- Hide Referer from third parties stealth option sets incorrect referrer value (missing trailing slash) #3393
$removeparamrules do not remove all tracking parameters when multiple rules match the same URL in MV3 #3444- Block ads manually does not work on tabs opened before the update #3452
- Extension does not always update filters after browser startup #3280
- Blocked requests in cross-domain iframes are not counted in the extension badge #3446
- Custom filter subscription accepts URLs returning HTML instead of filter lists #3501
AGTree (A tool for working with adblock filter lists)
- Updated @adguard/agtree to v4.1.1
TSUrlFilter (AdGuard Browser Extension filtering engine)
- Updated @adguard/tsurlfilter to v5.0.1
TSWebExtension (Library wrapper for Browser API and TSUrlFilter)
- Updated @adguard/tswebextension to v4.1.1
Scriptlets (JavaScript enhancement for filtering rules)
- Updated Scriptlets to v2.4.2
How to install MV3 stable:
How to install MV3 beta:
How to install MV2 stable:
5.4.1.3 beta
We’re continuing to improve MV3 support and make AdGuard easier to use across all your devices. Custom filters are now updating independently again, so you don’t have to wait for a full extension update. Also, you can import settings to other devices using just a link, and a warning popup helps prevent accidentally enabling Invert Allowlist.
Changelog
Improvements
- Added beta suffix to the version in issue reports #3330
- Implemented handling of speculative prerender requests
- Added confirmation modal for inverting allowlist
- Enabled independent updates of custom filters in MV3 without waiting for extension updates #2944
- Added warning notification in Opera when Allow access to search page results permission is not granted #2485
- Added support for importing settings via
adguard:import_user_configurationlinks on reports.adguard.com - Use HTTP
Last-Modifiedheader as fallback whenTimeUpdatedmetadata is missing #3407 - Improved allowlist editor: now normalizes entries by extracting domains from URLs #3430
- Updated issue report URL format to v4
- Cookie self-destruct stealth parameters are now MV2-only in issue reports (not supported on MV3)
- Added ROList support to Filters in MV3 #3473
- Added Share settings button to the main screen
- Updated @adguard/filters-downloader to v2.4.4
- Updated @adguard/dnr-rulesets to v4.2.1
Fixes
- Update indicator arrow flickers when opening the popup #3351
$badfilterincorrectly negates rules with different$denyallowvalues #3428- Filtering log window size and position are not restored with zoom #3255
- Blocking page is incorrectly displayed for search results #3414
- Invalid CSS selectors in element hiding rules affect all injected styles #3329
- Hide Referer from third parties stealth option sets incorrect referrer value (missing trailing slash) #3393
$removeparamrules do not remove all tracking parameters when multiple rules match the same URL in MV3 #3444- Block ads manually does not work on tabs opened before the update #3452
- Extension does not always update filters after browser startup #3280
- Blocked requests in cross-domain iframes are not counted in the extension badge #3446
- Custom filter subscription accepts URLs returning HTML instead of filter lists #3501
AGTree (A tool for working with adblock filter lists)
- Updated @adguard/agtree to v4.1.1
TSUrlFilter (AdGuard Browser Extension filtering engine)
- Updated @adguard/tsurlfilter to v5.0.1
TSWebExtension (Library wrapper for Browser API and TSUrlFilter)
- Updated @adguard/tswebextension to v4.1.1
Scriptlets (JavaScript enhancement for filtering rules)
- Updated Scriptlets to v2.4.2
How to install beta:
5.3.1.7
Just a routine update, but an essential one. We tightened things up behind the scenes to keep the extension stable.
Improved
- Updated internal filtering libraries:
@adguard/agtree 4.0.1,@adguard/scriptlets 2.2.16,@adguard/tsurlfilter 4.0.2,@adguard/tswebextension 4.0.3. - Updated
dnr-rulesetsto4.1.
Fixed
- Fixed extension freeze on startup. #3400
- Fixed incorrect tooltip position in the Statistics chart. #3449
- Fixed incorrect update indicator state in the popup and toolbar icon.
- Fixed stale persisted update state after browser restart.
How to install MV3 stable:
How to install MV3 beta:
How to install MV2 stable:
5.3.1.4 beta
Just a routine update, but an essential one. We tightened things up behind the scenes to keep the extension stable.
Improved
- Updated internal filtering libraries:
@adguard/agtree 4.0.1,@adguard/scriptlets 2.2.16,@adguard/tsurlfilter 4.0.2,@adguard/tswebextension 4.0.3. - Updated
dnr-rulesetsto4.1.
Fixed
- Fixed extension freeze on startup. #3400
- Fixed incorrect tooltip position in the Statistics chart. #3449
- Fixed incorrect update indicator state in the popup and toolbar icon.
- Fixed stale persisted update state after browser restart.
How to install beta:
5.3.0.8
This release strengthens the foundation of the extension, focusing on what matters most — speed, reliability, and smooth performance in the new MV3 environment.
Faster filtering engine startup
The filtering engine, known as TSUrlFilter, powers the extension, blocking unwanted content and keeping pages clean. With this update, the engine starts up twice as fast, so the extension runs smoother, and remains stable even after background restarts.
Native :has support
To block and hide page elements, the engine uses CSS selectors — a fast and reliable way to keep pages clean. Previously, :has selectors were injected by the extension itself using extended CSS. Now, where supported, the engine uses the browser’s built-in :has selector instead. This makes filtering more stable and predictable, while also reducing the load on the system.
Improved HTML filtering
A single filtering method is usually not enough on its own. When ads or other elements try to blend in with page content, HTML filtering comes in handy. It works directly with the page’s structure to detect and remove such elements. This update improves HTML filtering and brings it in line with the latest CoreLibs version, offering more accurate handling of :contains rules.
Restored csp_report blocking
Lastly, about our ongoing work with MV3. After moving to the new architecture, the blocking of csp_report requests stopped working, which could let websites collect additional data on blocked content and user activity. This update restores csp_report blocking in an MV3‑compatible way, bringing back the same level of protection and improving user privacy.
Changelog
Improvements
- Improved the readability of exported JSON files with settings by beautifying their structure #3069
- Added support for the
:has()pseudo-class as standard CSS when no other extended pseudo-classes are used in the selector, or when the#?#separator is explicitly specified #2587 - Improved readability of filter update logs and added version information before and after updates #2934
- Improved feature names and descriptions in Tracking protection (MV2)
- Improved filtering log performance by optimizing rule text retrieval
Fixes
- Repeated notifications when the dynamic rules limit is reached
- Network rules with the
$importantmodifier are applied even when protection is disabled #3227 - The Save button becomes active before the previous save operation is completed when editing User rules or Allowlist #3151
- Some requests are blocked in Inverted allowlist even when no websites are added to Allowlist #3193
- Filters are enabled after settings import when
enabled-filtersis empty
#3136 - The “Settings applied” notification appears before the settings are actually applied #3278
- The “Preserve log” option does not retain all records in the Filtering log #3148
- Tracking protection is disabled in MV3 extension when protection is paused
$documentblocking rules are applied even when a specific exception rule is present #3262- Blocked iframes are not collapsed in Firefox #3116
- The extension throws an unexpected error when accessing
[::]:8000#3360 - Toggle does not work in User rules fullscreen mode #3365
- Original rule text is displayed incorrectly in the Filtering log after rule conversion
TSUrlFilter (AdGuard Browser Extension filtering engine)
- Updated @adguard/tsurlfilter to v4.0.0
- Added full CSS selector syntax support in HTML filtering rules
#96
TSWebExtension (Library wrapper for Browser API and TSUrlFilter)
- Updated @adguard/tswebextension to v4.0.0
How to install MV3 stable:
How to install MV3 beta:
How to install MV2 stable:
5.3.0.8 beta
This release strengthens the foundation of the extension, focusing on what matters most — speed, reliability, and smooth performance in the new MV3 environment.
Faster filtering engine startup
The filtering engine, known as TSUrlFilter, powers the extension, blocking unwanted content and keeping pages clean. With this update, the engine starts up twice as fast, so the extension runs smoother, and remains stable even after background restarts.
Native :has support
To block and hide page elements, the engine uses CSS selectors — a fast and reliable way to keep pages clean. Previously, :has selectors were injected by the extension itself using extended CSS. Now, where supported, the engine uses the browser’s built-in :has selector instead. This makes filtering more stable and predictable, while also reducing the load on the system.
Improved HTML filtering
A single filtering method is usually not enough on its own. When ads or other elements try to blend in with page content, HTML filtering comes in handy. It works directly with the page’s structure to detect and remove such elements. This update improves HTML filtering and brings it in line with the latest CoreLibs version, offering more accurate handling of :contains rules.
Restored csp_report blocking
Lastly, about our ongoing work with MV3. After moving to the new architecture, the blocking of csp_report requests stopped working, which could let websites collect additional data on blocked content and user activity. This update restores csp_report blocking in an MV3‑compatible way, bringing back the same level of protection and improving user privacy.
Changelog
Improvements
- Improved the readability of exported JSON files with settings by beautifying their structure #3069
- Added support for the
:has()pseudo-class as standard CSS when no other extended pseudo-classes are used in the selector, or when the#?#separator is explicitly specified #2587 - Improved readability of filter update logs and added version information before and after updates #2934
- Improved feature names and descriptions in Tracking protection (MV2)
- Improved filtering log performance by optimizing rule text retrieval
Fixes
- Repeated notifications when the dynamic rules limit is reached
- Network rules with the
$importantmodifier are applied even when protection is disabled #3227 - The Save button becomes active before the previous save operation is completed when editing User rules or Allowlist #3151
- Some requests are blocked in Inverted allowlist even when no websites are added to Allowlist #3193
- Filters are enabled after settings import when
enabled-filtersis empty
#3136 - The “Settings applied” notification appears before the settings are actually applied #3278
- The “Preserve log” option does not retain all records in the Filtering log #3148
- Tracking protection is disabled in MV3 extension when protection is paused
$documentblocking rules are applied even when a specific exception rule is present #3262- Blocked iframes are not collapsed in Firefox #3116
- The extension throws an unexpected error when accessing
[::]:8000#3360 - Toggle does not work in User rules fullscreen mode #3365
- Original rule text is displayed incorrectly in the Filtering log after rule conversion
TSUrlFilter (AdGuard Browser Extension filtering engine)
- Updated @adguard/tsurlfilter to v4.0.0
- Added full CSS selector syntax support in HTML filtering rules
#96
TSWebExtension (Library wrapper for Browser API and TSUrlFilter)
- Updated @adguard/tswebextension to v4.0.0