AdGuard browser extension: 2.1.0 beta
This is a major update with quite a few new features and some very important changes. At first we were focused at Safari and their new Content Blocker API, but while adding this new API support we have added some features that may be useful to users of any browser. Let’s start.
Safari Content Blocker API #16
You may have heard that Safari has introduced a new API designed specifically for ad blockers. It works for both OS X and iOS and thanks to this API you can now use Adguard for iOS. Now it’s time for big brother to use it as well. If you use Safari 9 or later, Adguard will use a new API instead of the old one. Users of Safari 7-8: please don’t worry, we still support these.
New API has some pros and cons.
- We are now able to block any web request. With an old API (due to the nature of that API) we could miss some video ads.
- It seems faster than the old API. Safari developers were focused on performance while developing that API.
- Content Blocker rules syntax is not 100% equivalent to Adguard filters syntax. This means that a small part of our rules won’t work. That’s why we have added new Adguard Safari Filter, which single purpose is to fix the issues with missing rules.
- There is a weird limitation on the rules number. You can’t use more than 50000 rules. Due to that limitation we have implemented the feature below.
An option to use “optimized” filters #68
A long time ago we have added an option (turned off by default) that allows you to send us ad filters usage statistics. This statistics allows us to optimize existing filters and clean up redundant rules. But what’s more important, it allowed us to use special “optimized” filters in Adguard for iOS and Android. App performance and memory usage depends on the filters size, so it is essential to use smaller filters there.
Now you can use the same optimized filters in Adguard browser extension. If you are concerned about extension performance and memory usage it is highly recommended to try this new option.
Just look at the screenshot below. One memory snapshot is done with default filters and the other with “optimized filters”. The difference is astounding. With “optimized” filters memory usage is almost 40% lower.
Domain security check in a “private” way #50
First let me tell how that check was done in the previous versions. For check if domain is phishing or malware, Adguard sent domain name to a special web service. This is a very simple and straightforward way, but it has a serious flaw. We could see the websites you visit. Of course we didn’t use or save this information, but anyway, it does not look good, eh? From now on we use a new way that does not hurt your privacy in any way.
Now, instead of sending the whole domain name:
- Adguard calculates a 256-bit hash of the domain name.
- Then it sends first 32 bits of that hash to a web service and gets all matching hashes in response.
- Adguard checks if any of these hashes matches the domain hash.
As you can see, no sensitive information is being sent.
[Changed] Refactor UI and background services communication #26
[Changed] Display the actual number of the rules used by the extension: #78
[Changed] $popup rules must be applied to “document” only #79
[Changed] $elemhide rules should be applied to “Documents” only: #60
[Changed] Increment “blocked items” counter every time: #83
[Added] Add $generichide modifier support: #31
[Added] Add $genericblock modifier support: #30
[Fixed] Filtering log “Source” column is null for newly opened website: #38
[Fixed] Error in FF console: Unable to run script because scripts are blocked internally: #45
[Fixed] Filtering Log in Firefox 38 ESR: Referrer is null for EACH request: #47
[Fixed] Filter stats collection is broken when e10s is enabled: #36
[Fixed] Cannot disable ad blocking for a website in Tor Browser: #96
[Fixed] The enabled property of SafariPrivateBrowsing is deprecated. Use the private property of SafariBrowserTab instead: #65
How to install Beta version
Firefox (version 30 or newer)
You can always follow the development process of our project on Github. You can as well submit bugs and leave feature requests. See you there!