Disclaimer Adguard for Mac is not an open-source project. We use GitHub as an open bug tracker for users to see what developers are working on.
We are presenting our latest release — AdGuard for Mac v2.19! This version offers an assortment of updates and reworkings, aimed in two main directions: security and usability.
We’ve implemented a new protection mechanism: AdGuard for Mac now uses cryptography to protect UserDefaults settings and userscripts. UserDefaults are encrypted with AES-GCM. Other types of data, including userscripts and filters, are protected by SHA256 checksums cryptography, with keys stored in the macOS Keychain. If a third-party app attempts to modify the configuration, AdGuard will detect it and alert you immediately.
Another security-focused feature is that AdGuard can now detect when a userscript compromises a website’s security. If that is the case, you will get a specific warning while trying to install it. This became possible after an important update to CoreLibs.
Concerning usability: we reworked the onboarding process for new users. We added new screens and details to create a smoother flow, making the app easier to understand and navigate.
We updated Scriptlets, DnsLibs, and UserscriptsWrapper as well, and fixed bugs for an overall better app performance.
Changelog
Improvements
- Added DuckDuckGo browser to the list of filtered apps #1628
- Trigger filter update when it gets enabled #1636
- UserDefaults protected with checksums
- Userscripts protected with checksums
- Added warning message about userscript requiring modifications of CSP on Mac
Fixes
- Issues in Atlas browser when AdGuard for Mac protection is enabled #2043
- Browser assistant state isn’t updated after AdGuard uninstallation #1659
- The Block Java message is triggering Cloudflare DDoS protection #1694
- AdGuard is not automatically pulling the latest version of AdGuard Assistant for a release build #1639
- UI tabs aren’t clickable, only icons are #1704
- Rules from the enabled filter migrate to the User rules filter #1158
CoreLibs (Filtering engine)
- Updated CoreLibs to v1.20.101
Improvements
- Local.adguard.org resolution does not leak after enabling protection #1854
- Use CRLite as alternative of OCSP #1997
- Added an option to decode URL in
$urltransform#1915 - Enabled HTTP/3 filtering by default in AdGuard beta/nightly versions #2014
- Added support for a new
$reasonmodifier #1986 - The Do Not Track feature sends both DNT and GPC even on browsers which do not support them #1982
- Added regexp support in the
$appmodifier #1906 - Added support for example.org/path cosmetic rules #2012
- Added support for ALPS extension #1987
Fixes
- The MWITools script does not work with AdGuard #2001
@connectdoes not work as expected #1985- Content-type modifiers cannot be used with
$urltransformmodifier #1978 - HAR file is not fully compiled #2002
- If closing script tag contains space, then content is removed until next script tag (including this script) #2042
- In Request details, Destination address is displayed as
127.0.0.1if integration with AdGuard VPN is enabled #2021 - Incorrect HTTP 10x status code handling for HTTP/1.1 #2013
- Userscript cannot be added to AdGuard for Android due to BOM (Byte Order Mark) #2009
- Userscript runner doesn’t add a source map #1984
- When using FakeDNS option in proxy settings, AdGuard injections are broken #2017
- XHR timeout with immersivetranslate userscript #2000
$generichidedisables element hiding rules for specific domain if$domain=...is used #2041- Connection resets on CoreLibs 1.19 #2023
- Localhost is unreachable in manual proxy mode in 1.19 #2019
- Manual proxy does not work under Windows on CL1.19 #2029
Scriptlets (JavaScript enhancement for filtering rules)
- Updated Scriptlets to v2.2.14
Improvements
- Added a new scriptlet —
prevent-innerHTML#488 - Improved
fingerprintjs2— added support for thewindow.Fingerprintvariable #541 - Improved
trusted-click-element— added a parameter to increase the scriptlet execution duration #400 - Improved
set-cookieandset-cookie-reload— added support for thedeniedvalue #512 - Added a new scriptlet —
trusted-replace-argument#405 href-sanitizernow supports uBO arguments #493
Fixes
trusted-set-constantcannot determine string values correctly #499- Incorrect selector validation for single-letter HTML tags #172
prevent-element-src-loading— TrustedScriptURL is not defined in Firefox #514trusted-replace-node-text— some quotes are incorrectly escaped #517- Scriptlets compilation error in Safari 15 due to unsupported regex lookbehind #519
UserscriptsWrapper (Userscripts and user styles support library)
- Updated UserscriptsWrapper to v2.2.0
Fixes
- The requests
GM.xmlHttpRequestandGM_xmlhttpRequestare implemented incorrectly #1983
DnsLibs (DNS filtering engine)
- Updated DnsLibs to v2.7.6
#1633