40 comments

[ 3.1 ms ] story [ 56.5 ms ] thread
Very neat. I built a virtually identical internal tool for Blockmetry. A couple of tips from experience:

1. Add other browse extensions, and you'll see a big difference between their effects. Defaults matter a lot in this space.

2. Compare mobile vs desktop. Getting mobile emulation to be good enough is a bit of work, but worth it IMO.

Based on internal usage, the typical web page will load 35-45% faster with uBlock Origin installed.

My email address is my profile if you want to compare notes or whatnot.

Another interesting number is the total transferred size (in MB), maybe even the most important number since that is what people on metered mobile connections pay for.
This is great! A nice way to encourage people to start using an ad blocker.

I worked on a site to promote ad blocking some time ago. It runs a simple test to see if an ad blocker is installed and recommends uBlock Origin if it doesn't detect one. https://blockads.fivefilters.org

The point is to encourage people to not have slow ad overhead on their sites
The goal is both!
Why not push web monetization? This whole "problem" is a result of the fact that people are unable to pay for content.
Brave browser tries this right?
Kinda but IMO it does it the wrong way. Using a special browser is certainly not mainstream compatible. And blocking ads can't be the solution. This is possible since years and it didn't change the system. Donations via flattr and the like are also nothing new and didn't change the system either. Its the walled garden problem again the internet will never accept one party as the right so everyone will use this and therefore every website only has to implement this. Flattr for example was a cool idea but since it can only be used on sites who implemented this it can not scale. There is absolutely no chance that the majority of all websites will use it. And if it would happen it would be very bad. A single company would have way way too much power then. We need an open standard that allows value transfer on protocol level. So everyone can agree on the same tech and different payment provider can share the market and compete against each other. The Interledger Protocol may be the solution to this. ILP is for value what IP is for data.

Here is an interesting interview with one of the authors. https://www.w3.org/blog/2019/09/w3c-interview-coil-on-interl...

As you see W3C is also behind this which is exactly what we need for a global standard.

Even if the browser could read your mind and pay the perfect amount for content automatically I'm betting the model would have lower overall margins than the current model.
Why read my mind? Users deliberately kick likes and hearts and what not all the time. Also in most cases time show pretty good how much you valued some content.

The margin of the current model directly correlate with marines on the advertised products because obviously the users pay it this way indirectly. There is no way this 3 party model can be more efficient than a 2 party model.

Just "wow" at some of the previously tested sites: https://webtest.app/worst.html

~1000+ requests for a news story? Ouch. Is there nobody paying attention , for example, at the Denver Post?

Nobody cares, everybody just wants to monetize, while not even knowing which of those requests result in revenue. Just load everything and see what happens!
And most of the visitors don't even know why the page is so slow. Better buy a new device...
Most Denver Post users live with it so why should they care? It's not like they're gonna go "hey, this website makes too many requests, I'm going to go to the colorado statesman instead" or whatever.
No, but they're going "hey, since I installed uBlock Origin that my geek friend recommended this is loading a lot faster, I should tell my friends".

Of course, this is a tragedy of the commons - one web site improving won't affect the experience enough to make users change behavior, but all of them behaving as badly as they do forces people to use ad blockers.

(comment deleted)
Lots of sites that are basically unusable on mobile from multiple overlays covering the actual page are suddenly just fine when using pi hole. Everything gets much faster, much lighter and much easier to read.
I doubt anyone will reproduce 1.43s locally for DomContentLoaded, I do get ~250 ms on my side in Chromium's dev tools' Network pane with cache disabled -- no meaningful difference than without uBO. I think such discrepancy should be investigated to identify why this happens.
It's also just one test, and not hundreds. I just reran it, the result is now the other way around.
Well! thanks for sharing such information
(comment deleted)
What's funny is if you try YouTube adblock has more requests and takes longer than just chrome.
It's because there is more room in your browser for loading thumbnails..
I think you can force load a plugin in chromium headless with a command line argument. Last time I checked the issue was accessing the html dom of the extension e.g chrome-extension://blahblahblah as it only returns a blank page. The other annoying issues I experienced and currently remain unresolved in the latest chromium build headless mode + CDP are:

1. Granting permissions to scopes for sites e.g geolocation, notifications in Browser.GrantPermissions

2. Setting a mock geolocation in Page.setGeolocationOverride I've tried replacing the JS navigator function for geolocation, even if you grant the geolocation permission on the site it still says that it is prompting the user

If anyone has any advice on how to resolve these issues without a virtual X server it would be greatly appreciated. Feel free to drop me a bell @ henry@str8up.media or in a comment.

If google needs anyone to find bugs in chrome headless and CDP I need a job.

Youtube.com is very interesting, it's actually slower using an adblock.
Many sites are slower with an adblocker. Some have a multiple second timeout waiting for a script or ad/analytics package to never load.
It just sucks that ad-blockers are so slow. Do you have a really fast page without ads? Then using a plugin for ad-blocking will make the experience noticeably slower, often going from no noticeable delay to "this isn't instant". Whitelisting the page doesn't really help much either, at least not in ABP.
Adblock Plus sells whitelist entries to companies, so I wouldn't use that anyway. I mainly block ads with the hosts file, works fine for 99% of all ads. Although I still also run uBlock Origin to get rid of all the annoying popups and banners as well. Now the only thing I'm missing is a filter that blocks all videos from even loading(because turning off autoplay does not work on many sites).
Slightly off-topic, but I realized that sites which really want the video to play will start playing the video when you scroll. I believe this works because the scroll event is considered user-triggered, and sticking the "play video" trigger on that event means the browser won't block it.

This is gross. NoScript fixes pretty much all of these workarounds. But I don't need to use that really; sites which autoplay video have an "x" button in the tab, which stops the video from playing. I just use that, and move on.

Interestingly, Google is slower with an adblocker. Probably has to do with the slight overhead that uBlock Origin adds. For most sites, it’s a net positive with all the trackers and ad networks sites load. However, for sites with little or no trackers/ads it just adds a bit more processing time.

https://webtest.app/?url=https://google.com

Wow it takes longer with adblocker to load my website, because I don't have ads :)
(comment deleted)
The Wh metric is only based on bytes transferred according to the FAQ.

It would be much more important to measure CPU load, because it's what actually causes physical discomfort (hot laptop, fan noise), and power consumption that users pay for. Measuring CPU time for the page load shouldn't be too difficult and high CPU usage is one of the biggest problems with ads.

Memory usage would also be interesting.

Yeah I agree, but I have no idea where to get or even measure any metrics.
I don't know how your setup looks. But if you have a worker process that loads the page (and does nothing else), you could (on Linux) get the values from `ps`, or from whatever canonical source `ps` reads from.