[HN Gopher] Manifest v3 in Firefox: Recap and Next Steps ___________________________________________________________________ Manifest v3 in Firefox: Recap and Next Steps Author : TangerineDream Score : 86 points Date : 2022-05-18 17:17 UTC (5 hours ago) (HTM) web link (blog.mozilla.org) (TXT) w3m dump (blog.mozilla.org) | rektide wrote: | Murdering userscript extensions & dynamic code is such a sad | thing to declare a win. There's so much FUD being used to scare | the web into accepting so many sad new limits. I detest this | technical fearocracy. | Vinnl wrote: | What do you mean when referring to userscript extensions and | dynamic code? | | The latter I think refers to being able to execute code that is | fetched at runtime? That certainly makes things a lot easier | for developers, but I don't quite see what limits that imposes | for users? | rektide wrote: | There's a range of different ways to author & uses for | dynamic code. | | In terms of use cases, downloaded on the fly code is | definitely one example. Userscript engines like Greasemonkey, | VioletMonkey, & TamperMonkey are all alao on the chopping | block, which also allow user-edited code as well as | downloaded code. | | There's also a huge range of uses for dynamic code in | general. Data stores & engines will optimize performance by | using the Function constructor[1]. Cant do that anymore: | basic, sensible, multi-decade long optimizations are now off | the table. Being able to use eval() to dynamically generate a | complex expression- no longer allowed. | | It's bitterly ironic that Apple's prohibition against | interpretters (a type of dynamic code) has held their | platform back from allowing interesting things to run on iOS. | Chrome's real rendering & js engines are blocked there. | Because Apple says it's too unsafe to trust programs to do | anything not statically defined, that only code that can all | be fully read & understand is ok. Now here's Google & then | Mozilla, bringing the exact same prohibitions against dynamic | code to the web. At it's deepest heart. It's so ugly, so | hypocritical, & so menacing & massive a threat to | possibility, to extensions that can grow & develop. | | Long hope, but a deep one: I very much hope one day (far | away) a semantic-web like world wide web might emerge, but if | this sick knee-capping happens the browser will never be a | viable place for user agency- which must be a dynamic & | growable organic thingh never be tenable as a place where | user agency can grow & flourish. Extensions are amazing, but | if they're restricted to single-purpose little timmicks, | unflexible static predefined capabilities, Google will have | insured that the only thriving systems the world will get | will be inside the data center. These restrictions mortally | cripple user-agency, that which is most special & most dear | about the web & what set it apart from conventional software | applications. | | My open github issue[2] on this. | | [1] https://developer.mozilla.org/en- | US/docs/Web/JavaScript/Refe... | | [2] https://github.com/w3c/webextensions/issues/139 | user3939382 wrote: | The basic problem is that the average non-technical user | lacks the knowledge that these policies exist, much less | their deleterious effects. This is the problem with some of | the valid points RMS has been raising for decades. Look at | dragnet surveillance- ask the average person who Snowden | is. | | Unfortunately I don't see that changing, especially since | you can see the same dynamic in (nearly?) every other | industry. The industry engages in widespread practices, | sometimes legitimized by corrupt laws via regulatory | capture, that harm our society and everyone is too busy | trying to put food on the table to notice. | shadowgovt wrote: | Honestly, Mozilla's approach here is sound: they create a | potential competitive edge by _not_ removing the existing APIs, | betting that the good outweighs the harm. | | I hope it does! | rektide wrote: | No, Mozilla is imposing the same brand new restriction | against dynamic code (eval, Function[1]) as Google & has no | affordances to allow this sometimes performance-critical & | creatively necessary set of capabilities. Extensions can no | longer grow & evolve, turning back multiple deacdes of | possibility. | | [1] https://exploringjs.com/impatient-js/ch_dynamic-code- | evaluat... | SemanticStrengh wrote: | fearocracy is a nice term | [deleted] | freediver wrote: | As a developer of a browser supporting WebExtensionsAPI, the move | to v3 is going to add so much complexity. | | For developers, maintaining browser extensions across browsers | with different support for WebExtensionsAPI is going to become a | major PITA. | | Even right now one can not submit a new Chrome extension unless | it is v3 so that means that extensions codebases have to be | branched out for Firefox and Chrome which was not the case | before. | | The hardest will be on the browser side of things. Supporting | both v2 and v3 sides of an already extremely complex API (which | is what we plan to do) will be causing a lot of issues. | | The situation is not good. The lack of standard and unity does | not help the web. | dathinab wrote: | > extension unless it is v3 | | As far as I understand the move to V3 from Firefox means will | be able to ship the same App for chrome and Firefox. | | Firefox just supports some additional APIs which are essential | for good AD blockers Google killed. | | But if you don't need this additional API (or don't have the | time to support them) you could just ignore them. | | That is once the move to v3 fully succeeded. | | > The situation is not good. | | Yes the way Google turns Chrome into a de-facto standard | sidestepping or force feeding normal standardization procedures | is not good. | | (Slightly over simplified:) Like the most common problem with | running Firefox is that it's more strict with CORS related | stuff, like the standard originally intended, but ups, Chrome | had already implemented less strict checks and didn't want to | brake any websites so that became part of the standard to (i.e. | the more strict part became optional). | mhitza wrote: | Unfamiliar with WebExtensions API, but is there no polyfill | type tool for the v2/v3 API, which can be specified at "build" | time? | daveidol wrote: | No, for certain changes in Manifest V3 there is no way to | polyfill the V2 API because the functionality is essentially | removed/impossible to do now. | | Also, other aspects (like switching from background pages to | service workers) require a change in programming model | (moving from simple variables to message passing/persistent | storage) as your service worker can be killed off at any | time. | dathinab wrote: | > No, for certain changes in Manifest V3 there is no way to | polyfill the V2 API because the functionality is | essentially removed/impossible to do now. | | But isn't the whole announcement about Firefox also going | to support v3 (e.g. you only need to write for v3) except | that it still allows some of the removed functionality | _additionally_ to the v3 APIs Chrome has? | | > Also, other aspects [..] | | Yes, that will be a major change. But as far as I | understand one you have to go through anyway if you want to | support Chrome. | bayindirh wrote: | Good things in browser space came out of sparks created by | opposing forces' clashes. | | When everybody does the same thing, different ideas can't take | root and express themselves, and we can't create even better | ideas. | prox wrote: | The existence of a monopoly does not help the web. | falafelite wrote: | I'm in the same boat and feel the same. It's just not a great | state of things for extension development, and yeah the | separate Firefox and Chrome code in my codebase truly irks me. | worble wrote: | The fact that Firefox is standing up to Google and their | crippling of WebRequest is a good thing, for users at least. | | The alternative is not "unity", it's Google dictating standards | that only ostensibly help them and their ad business. | Confiks wrote: | It would aid communication if Mozilla would denote the maintained | support for blocking `WebRequest` in the version number. | Unfortunately `manifest_version` is a number, not a string, but I | guess naming it 4 would clarify things plenty by annoying the | standards process _just_ enough. | wolpoli wrote: | > Mozilla will maintain support for blocking WebRequest in MV3. | | Glad to hear that uBlock Origin will live on in Firefox. | foepys wrote: | I have a slight hope that gorhill will just remove the Chrome | extension which might get users back to Firefox. It's next to | useless with Manifest v3 and has been quite constricted for a | while now when being used in Chrome [1]. | | 1: https://github.com/gorhill/uBlock/wiki/uBlock-Origin- | works-b... | donmcronald wrote: | > Ability to uncloak 3rd-party servers disguised as 1st-party | through the use of CNAME record. | | I always thought that would be the evolution of ads, but | didn't realize it was already fairly widespread. | | Maybe it's time for me to look at switching back to Firefox. | I ditched them when they pushed so hard for DoH which looks a | lot like ad delivery tech to me. I thought Microsoft would | give users a good experience with Edge since they should be | trying to gain market share, but that was totally wrong. It | pushes Microsoft accounts and affiliated products _super | hard_. | | Does anyone have a recommendation for a plain, un-Googled, | Chromium browser on Windows. I'd prefer something digitally | signed and without extra features like Brave, etc. have. | brobinson wrote: | The only pushback I saw on DoH was from network admins who | want DoT so they can MITM/block it easily. Firefox lets you | set the DoH endpoint anyways so you can run your own | resolver (dnscrypt-proxy or whatever). | Gare wrote: | > I ditched them when they pushed so hard for DoH which | looks a lot like ad delivery tech to me. | | It looks like privacy-enabling tech to me. I don't want my | ISP to snoop which domains I visit or hijack DNS requests. | krono wrote: | The untouchable foreign databroker that is Google | concerns me to a far greater degree than my heavily | regulated and monitored ISP whose HQ is only a 30m bike- | ride away here in the Netherlands. | sp332 wrote: | Firefox doesn't have Google on their preinstalled DoH | provider list. You can go out of your way to configure | it. | BuckRogers wrote: | Just one man's opinion here but on these- | | _It pushes Microsoft accounts_ | | I use it on my work machine without an account, and there's | no push that I could ever see. Seems about the same on that | front as anything else, including Firefox. I also have a | Firefox account. I do use a MS account on my personal Edge | install. | | _and affiliated products super hard._ | | You would think this is a negative, but it opened my eyes | and saved me a lot of money. In fact, Edge's shopping | features were something I wish I had for years prior. I | liked it enough that I went looking for best-in-class | options, and ended up installing Honey. I now rely on both | Honey and Edge's shopping features to save me money. | | I would go so far as to say if I had to leave Edge and use | a browser without Edge's shopping features, I'd be one of | the features pulling me back to Edge. | e2le wrote: | uBlock Origin and other content blocker extensions have 10+ | Million users each on Chrome, it'll be interesting to see | what happens when they eventually to cease to function (June | 2023). How will users react? | | Hopefully, Mozilla won't be completely inept as to fail to | position themselves to capture any users leaving Chrome over | this. | daveidol wrote: | Yeah, didn't gorhill already say that uBlock Origin will never | be ported to Manifest v3 due to how much he'd have to cripple | it? | | That means that very soon all Chrome (and Edge) users will no | longer have uBlock Origin, and Firefox will be the only way to | run it officially. | | This could be a pretty decent value prop for Firefox (bigger | than the random features Mozilla has been pushing recently | IMO)... Although I'm sure the majority of less technical Chrome | users will just switch to whatever gimped, Chrome-sanctioned | declarativeNetRequest ad-blocking extensions spring up to fill | the void. | SemanticStrengh wrote: | > didn't gorhill already say that uBlock Origin will never be | ported to Manifest v3 due to how much he'd have to cripple | it? I don't think that is up to date | pictur wrote: | why are these manifest files a complete mess? I really don't | understand how they manage to complicate something so simple | freediver wrote: | Different tech companies, that are also major browser | manufacturers, have a radically different vision of what the | web should be and how it should be consumed. | djbusby wrote: | Maybe it's not actually simple? | guelo wrote: | Here they defend the decision to adopt WebExtensions even though | they're now reduced to chasing Chrome's whims. But maybe all the | disruption and pain can be justified because there has been a | flood of cross-platform plugins that were previously unavailable | in Firefox. I don't have any data but my sense is that there are | a lot fewer extensions than their used to be. There is definitely | less plugin innovation happening since, as with most Google APIs, | it is less powerful, less transparent, more locked down. There is | also the question of differentiation, what is Firefox's value if | it is but another Chrome clone? | sp332 wrote: | It's a superset of Chrome's functionality. E.g. | https://github.com/w3c/webextensions/issues/134. The Web | Extension API in Firefox is generally a lot bigger than | Chrome's, so there's plenty of differentiation and I wouldn't | call it a clone. | nbp wrote: | "[...] by virtue of the combined share of Chromium-based | browsers, will be a de facto standard for browser [...]" -- i.e. | The web is dead. | | Please consider switching to a non-Chromium-based browser if you | want it back. | shadowgovt wrote: | If "the web" in this case means "several incompatible standards | I have to adopt to work on all likely users' browsers," I won't | miss _that_ web. | | If "the web" means "There are a few standards different | implementations conform to, and if I adopt those standards I'm | compatible with those implementations," I don't see it dead in | the adoption of MV3. | zamadatix wrote: | It's not really about whether it's Chromium based or not it's | about what the fork does once it's disabled in Chromium. | [deleted] | wolpoli wrote: | Microsoft Edge will stop running Manifest v2 on January 2023 [1], | or 6 months from now. | | [1]: https://docs.microsoft.com/en-us/microsoft- | edge/extensions-c... | anaisbetts wrote: | This is the day I move off of Microsoft Edge, uBlock Origin is | a Required Extension imho | lapcat wrote: | As an extension developer, I see a catastrophe coming for | extensions in Chromium browsers. I don't think users are going | to be prepared for the slaughter. You're going to lose a ton of | extensions, and many others will be hobbled by manifest v3. | | Firefox and Safari should be ok at least in the immediate | future. I doubt Apple is going to announce next month at WWDC | that v2 extensions will be dead in September 2022, even before | Chrome kills them in 2023. | | v3 is not even _ready_ yet. There are still major bugs and | missing features, which Mozilla 's blog post alludes to. I'm | postponing the migration myself as long as possible. | wildrhythms wrote: | What's the uBlock Origin equivalent for Safari? Every time I | think about switching to 'the better browser on my Mac' I | find there is no such replacement. | fiddlerwoaroof wrote: | I find 1Blocker is sufficient, even if it's not as flexible | as ublock origin. I like that Safari's content blockers are | designed to make it easier to trust them (e.g. you don't | have to trust that they don't send your browsing history to | a server, because they cannot make network requests) | lapcat wrote: | There's no equivalent for Safari. There are a number of | Safari content blockers, but the API is strictly limited. | It's somewhat similar to declarativeNetRequest in Chrome | manifest v3. | WalterGR wrote: | Can anyone explain the "Manifest" in the name "Manifest v3"? | | Sure, extensions have manifests, but clearly the project is about | much more. It seems like... an odd choice. | anaisbetts wrote: | In this case, you can think of it as the API surface exposed to | Chrome/FF extensions, or akin to the iOS version/Android API | Level - it fundamentally affects what an extension can Do | lapcat wrote: | The manifest.json file of an extension has a key | "manifest_version" which for many years had the value of 2. You | set the value of "manifest_version" to 3 to signify to the | browser that your extension adopts the new API. | | The name is very meaningful to extension developers. To others, | perhaps not. | WalterGR wrote: | Sure. It's just odd synecdoche. ___________________________________________________________________ (page generated 2022-05-18 23:00 UTC)