Yeah I don’t seem to feel any performance or functionality degradation myself. What <X> ad blocking related feature has been made impossible with MV3?
Yeah I don’t seem to feel any performance or functionality degradation myself. What <X> ad blocking related feature has been made impossible with MV3?
https://github.com/uBlockOrigin/uBOL-home/wiki/Frequently-as... has a few of the more practical concrete examples. Namely content can load without the blocker being ready to filter, CNAME cloaking can't be handled properly (in Chrom* at least), and the filter rules aren't as flexible.
Interestingly, the rule count limits themselves do not (currently) seem to be much an issue despite it being one of the more common concerns on the original MV3 announcement.
> content can load without the blocker being ready to filter
This isn't an MV3 issue, it's a Chromium design decision that extensions cannot block browser initialization. It was also true with MV2. In fact, MV3 has improved the situation because DNR rules are enforced immediately.
You could certainly argue that Chrome should allow extensions to block browser initialization, or that it should be user configurable - but it seems like an entirely defensible Chrome decision. Regardless, it's nothing to do with MV3.
> the filter rules aren't as flexible.
That's true, but they are still very flexible, and DNR makes some very nice features possible in uBO lite that were not possible in uBO.
For example, did you know that you can change your User-Agent with uBO lite? Go to the Custom DNR rules tab, and enter something like this to pretend to be Lynx on whatever.com:
I don't think that's possible in uBO, so clearly there are some benefits to switching. I have a ton of custom dnr rules, and love this feature.Any MV3 issue could probably be summed up as "MV3 isn't so bad, just the implementation in Chrome" where Chrome defines MV3 (as it's not a W3C standard) and ships it as such.
That said,
> Chromium design decision that extensions cannot block browser initialization
It's not "browser initialization" that was blocked, it was blocking network requests for pages until they were processed by all components in the chain. Notably, this could never apply applied to the browser or its internal pages itself.
> It was also true with MV2.
With MV2 you used the blocking version of https://developer.chrome.com/docs/extensions/reference/api/w... which no longer works with MV3 extensions in Chrome and then the request had to wait until it was given to and processed by the blocker.
Firefox is a great example about all of the above points: MV3 still supports blockingWebRequest there, so it gets the best of both worlds.
> did you know that you can change your User-Agent with uBO lite?
With MV2 you'd use blocking webRequest and chrome.webRequest.onBeforeSendHenders. I'm not sure uBO ever bothered with this before uBO Lite, but it's a bit of a double standard to say "MV2 didn't offer blocking requests, that was a different API which happ
> and then the request had to wait until it was given to and processed by the blocker.
Despite the name, the requests were not blocked until the extension had initialized. The browser could make network requests before that happened with MV2. With MV3, static rulesets and persistent DNR rules are enforced immediately.
> With MV2 you'd use blocking webRequest and chrome.webRequest.onBeforeSendHenders
Of course an extensions could do this, I said uBO lite. DNR made exposing this powerful functionality fast and easy. My point is that MV3 uBO lite has useful features that MV2 uBO does not.
> Despite the name, the requests were not blocked until the extension had initialized. The browser could make network requests before that happened with MV2. With MV3, static rulesets and persistent DNR rules are enforced immediately.
There were several workarounds like suspendTabsUntilReady which helped greatly in this half of the problem. Then it would solidly stay permanently registered too. I'm pretty sure none of these work in Chrome anymore though, it was obvious they never intended these sorts of things to work that way.
Nevertheless, MV3's ability to offer limited filtering on startup does not seem like such a blessing when the other option was to just guarantee full filtering on startup as seen in this change https://bugzilla.mozilla.org/show_bug.cgi?id=1447551
> Of course an extensions could do this, I said uBO lite. DNR made exposing this powerful functionality fast and easy. My point is that MV3 uBO lite has useful features that MV2 uBO does not.
What you said is so, it just might highlight more than what you'd like it to at the same time. That it was missing before had nothing to do with the difficulty or need for MV3. uMatrix had it for a while and Gorhill regretted it because it didn't change things like the user agent JS would report and such, hence he wouldn't port it over. The above filter has the same problems. Great if you just want a normal quality user agent switcher, that it's normal quality is why it was never in the old extension though.
> Nevertheless, MV3's ability to offer limited filtering on startup does not seem like such a blessing when the other option was to just support full filtering on startup
Sure, but as I said, it's a design decision, and nothing to do with MV3. I'm not trying to litigate it one way or the other.
I do think DNR is a good solution, and that request callbacks were a bad idea. That's my opinion - and the counterargument is obvious -- you can't do literally everything you could do in a callback declaratively. That doesn't sway me, I still think it's better!
> Great if you just want a normal quality user agent switcher
It was just a trivial example of using a powerful new feature that uBO doesn't have, not a full featured extension! The fact that it's possible at all is the point, it's cool.
You can definitely do anything that DNR can do with webRequest, nobody can dispute that. The point is that there are things you can do with uBO lite that you can't do with uBO (and vice versa!). It's not a straight downgrade, there are powerful new features.
Maybe or maybe not. But Youtube ads are now freely flowing through with MV3. That was the entire ruse.
I have used uBlock Origin Lite or a couple years. Youtube is supposed to have ads?
The companies that don't want you using the lite version are waiting for full version to completely go away before blocking the lite one. No sense driving you to that. So, check back in a couple months and see if it's all still good.
I've seen some ads slip through the cracks nowadays, like I think Wikia ads for some TV shows I go to now have ads on them. They gave up on blocking Meta.
I believe the main things are that block lists have to be updated through the Chrome Web Store and there is an upper limit for things that can be blocked.
Severe limits on additional filters, which is bad for people who want it to add more annoyances than it does by default.