Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
For an extension to be entirely declarative, it must package all the scripts to inject anywhere, the scripting.registerContentScript API doesn't allow injecting code as string[1], the content scripts must be part of the package.[2]
There is userScripts API which allows injecting code as string, but it's impractical as in Chromium-based browsers this requires extra steps by the user to enable the API.[3] In Firefox, the documentation for this API has the following note[4]:
> When using Manifest V3 or higher, use scripting.registerContentScripts() to register scripts
* * *
[1] https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...
[2] https://github.com/uBlockOrigin/uBOL-home/tree/main/chromium...
[3] https://developer.chrome.com/docs/extensions/reference/userS... ("Availability Pending")
[4] https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...
> Manifest V3 will stop this by limiting what Google describes "remotely hosted code." All updates, even to benign things like a filtering list, will need to happen through full extension updates through the Chrome Web Store. They will all be subject to Chrome Web Store reviews process, and that comes with a significant time delay.
So the author can't think of any other reason for this change other than to "slow down ad blocker updates"
Well how about stuff like this: https://github.com/extesy/hoverzoom/discussions/670
Where an extension dev details offers to "monetize" his app and basically perform a bait and switch and make it malicious.
https://github.com/webcompat/web-bugs/issues?q=is%3Aopen+is%...
Microsoft Teams (which I don't think many people use voluntarily) in particular breaks in stupid ways - and then in others if you spoof your user agent.
I've edited my comment to also include a link to the Chrome docs, but that FAQ entry also has the link to an issue in the webextensions repository indicating it's a limitation of MV3: https://github.com/w3c/webextensions/issues/112
> Show me these pages that Firefox doesn't render well.
I'm not doing homework for you. Lots of pages don't render well in Firefox, it's a well known issue which is why it comes up in every thread about Firefox.
> Show me pages that tank Firefox performance.
Firefox in general performs poorly. Again, known long-term ongoing issue. Look at this thread where almost every top-level comment is sceptical that Firefox is even close to Chrome in performance: https://news.ycombinator.com/item?id=36770883
You can find ongoing performance benchmarks between Chrome and Firefox here, and it's not flattering for FF: https://arewefastyet.com
> How many of them will have -webkit-* and other engine-exclusive markup/CSS?
I don't care, at all. It's not my job, as a user, to debug performance problems.
> Firefox updates every 6 weeks, just like Chrome.
Ok? I didn't say anything about update cadence.
It's called Sideload XPI, iirc Firefox Nightly allows you to sideload XPI if you enable Experimental by tapping Firefox logo in About 7 times.
But it's easier with Ice Raven or Smart Cookie Web Preview:
- https://old.reddit.com/r/browsers/comments/18ezd3g/iceraven_...
- https://github.com/CookieJarApps/SmartCookieWeb-Preview/rele...