5 ms·
Yes, I’m going to downvote you, but only because you misunderstand how ad blocking works. uBlock does marginally slow down webpage render because it has to inje
by surround 6y ago
Yes, I’m going to downvote you, but only because you misunderstand how ad blocking works. uBlock does marginally slow down webpage render because it has to inject CSS rules (cosmetic filters) to improve blocking quality. If you don’t want this feature, you can disable cosmetic filtering entirely within uBlock’s settings.
The problem with AdGuard is that they charge for system-wide blocking which can be done for free with a hosts file or pi-hole.
- stephenr 6y agoIt’s almost as if the browser should provide an method for extensions to identify things to block, in a way that is optimised for performance and privacy, rather than just throwing even more JavaScript into the page.
- aswan 6y agoChrome has a beta extension API that does this: https://developer.chrome.com/extensions/declarativeNetRequest https://developer.chrome.com/extensions/declarativeNetReques... However, this API could be used to optimize some of (not all of) the networking filtering that uBO does. Network filtering is distinct from cosmetic filtering, the latter is what injects scripts into every page. The uBO wiki has some nice documentation of the different features, measurements of their overhead, etc. E.g.: https://github.com/gorhill/uBlock/wiki/Doesn't-uBlock-Origin-add-overhead-to-page-load%3F https://github.com/gorhill/uBlock/wiki/Doesn't-uBlock-Origin...
- stephenr 6y agoDoes network filtering not rely on JavaScript now?
- aswan 6y agoThe webRequest api uses javascript, but with code that runs in the context of the extension, not code that is injected into web pages. You can read a bit more here: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...
- stephenr 6y agoGreat so not javascript running "in the context" of the page.. just javascript running.. somewhere else, for every single network request that is made, and that still has access to the page. I know a lot of web developers don't want to hear this, but throwing more javascript at the problem isn't always the best solution.
- jsjohnst 6y ago> It’s almost as if the browser should provide an method for extensions to identify things to block Safari[0] has this and has had for a while now... While maybe not as effective as uBlock Origin, I have extensions I use that leverage that API on iOS and MacOS that do a good enough job for my needs. [0] https://developer.apple.com/documentation/safariservices/creating_a_content_blockerYep https://developer.apple.com/documentation/safariservices/cre...
- stephenr 6y agoAhem. Yes, I am aware of this. Sarcasm really doesn't convey well via text.
- bluedays 6y agoYou are being presumptuous about my knowledge in regards to ad blocking. So I'll explain in further detail why I personally use adblock, and why ublock is unnecessary. First, the css rules are available on adguard as well. You can actually review the documentation here: https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#example-cosmetic-rule https://kb.adguard.com/en/general/how-to-create-your-own-ad-... Second, adguard is free. There are certain premium features, however. For instance, filtering ads outside of your browser requires a premium license. However, if you are comparing it to ublock this was already not a feature that was available to you. Of course, even that comes with an addendum, which is that this is only something that you need to worry about on mobile devices. Should you be using the desktop version you will actually see that adguard is free and available here on github: https://github.com/AdguardTeam/AdGuardHome https://github.com/AdguardTeam/AdGuardHome In regards to pi-hole. The cumbersome nature of pi-hole makes it undesirable for me. There were many sites which were blocked for inexplicable reasons the last time I used a pi-hole and creating a whitelist for these sites requires more work than is necessary. First you must navigate to the portal, and then you must make changes to either the whitelist, or remove a site from the blacklist depending upon why the site is not accessible. It was not seamless design. However, those that find this feature desirable will find that adguard actually offers the same experience with adguard home: https://github.com/AdguardTeam/AdGuardHome https://github.com/AdguardTeam/AdGuardHome And as a matter of fact you will notice that there are comparisons between ublock origin available on the github page for your review. There are actually a number of features which are missing from ublock which are simply not possible with ublock origin. As for the accuracy of these features you’ll have to determine that on your own but you can review them here: https://i.imgur.com/5fSLuHx.png https://i.imgur.com/5fSLuHx.png Also, ublock origin does not marginally slow down a webpage rendering. It significantly slows down a webpage rendering. As evidenced here: With ublock origin: https://i.imgur.com/4NxOysN.png https://i.imgur.com/4NxOysN.png without ublock origin: https://i.imgur.com/jIlof5e.png https://i.imgur.com/jIlof5e.png That means that when you are running ublock origin your browser is working at 87.85% capacity. Or in otherwords, a 13.15% decrease in speed. To put this in real world terms it would be similar to reducing the speed to 50mph* on a road that was originally 60mph. So feel free to keep using ublock origin. As a matter of fact I also use it occasionally in a pinch. (It does, after all, significantly speed up rendering of some webpages. I find it especially useful on webmd.) However, for my daily driver I find it to be a poor solution. *Rounded down, the actual number is 52.11.
- ameshkov 6y agoLet me please chime in. As AdGuard developer, I'd like to comment on what you said and explain some details about how it works. First of all, AdGuard desktop and mobile apps are quite different from hosts files or pi-hole. For instance, they're also able to apply cosmetic rules. Also, and this is really important on Android (unfortunately we can't do that on iOS), AdGuard is able to apply different rules depending on which app makes a request. The common example is dealing Facebook Audience network. If you need to block Facebook ads in third-party apps with Pi-Hole, you'll have Facebook official apps broken as well. With AG, you can keep the official FB app working and block it in third-party apps at the same time. Second, on every platform save for iOS, AdGuard filters every network connection and not just DNS queries. There're already multiple examples of apps (for instance, TikTok) that switch to using DOH when they detect that there's DNS filtering messing with their domains. Eventually, every network-level blocker, pi-hole included, will have to control all connections as DNS simply won't be enough. Regarding Pi-Hole, we actually maintain a free and open source alternative called AdGuard Home: https://github.com/AdguardTeam/AdGuardHome https://github.com/AdguardTeam/AdGuardHome
- surround 6y ago> AdGuard desktop and mobile apps are quite different from hosts files or pi-hole. For instance, they're also able to apply cosmetic rules. My understanding is that AdGuard desktop is equivalent to hosts file + adblocking extension. Is that correct? > AdGuard is able to apply different rules depending on which app makes a request. How is this possible without root? > AdGuard filters every network connection and not just DNS queries. How can AdGuard filter secure connections (outside of the browser)? Does AdGuard filter by IP address?
- ameshkov 6y agoNo, AdGuard desktop is basically a full-scale firewall with a network driver that intercepts all network connections. Regarding Android, this works with the help of the VPN API. 1. Android routes all IP packets to the “tun” interface 2. AdGuard reads them, passes through its own small tcp/ip stack. On one side there is the tun device, on the other side there are real sockets to the IP packets destinations. 3. App detection can be done either by reading /proc/net/tcp or, on newer Android versions, by using special getConnectionUid method. Regarding secure connections, besides IP filtering (which AG also can do) there is always SNI scanning. Also, there’s an option to MITM connections, in this case AG generates a unique CA locally and does all the certs validation by itself.