logoalt Hacker News

zamadatixtoday at 3:00 AM1 replyview on HN

> 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.


Replies

tavisotoday at 3:25 AM

> 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.