logoalt Hacker News

zamadatixtoday at 1:59 AM1 replyview on HN

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


Replies

tavisotoday at 2:05 AM

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

show 1 reply