this post was submitted on 07 Aug 2023
1826 points (98.4% liked)
Firefox
17849 readers
143 users here now
A place to discuss the news and latest developments on the open-source browser Firefox
founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Nah, honestly I get this. They likely don’t let you run it in Safari either.
The problem is that each browser use different rendering and JavaScript engines. They all follow the same spec, but implement things differently, and at a different pace. Firefox tends to be really speedy with adding features.
Rendering is one thing, but for web apps the main issue is how they each implement JavaScript differently. Chromium uses the V8 engine, Safari uses JavaScriptCore, and Firefox uses SpiderMonkey.
Each one of these implementations handle certain JS features differently.
Array.prototype.sort
is a good example.This means that when developing your application you need to keep track of what differences each browser has, and write/use polyfills or conditionals to ensure that your methods work as expected on all platforms.
This becomes cumbersome quickly, and easily leads to a messy code base and technical debt as the application grows.
It further complicates testing since you’ll need to test each release on each browser.
The easy cop-out solution is to just support a single platform, and direct people not on that platform to use the browser you’ve developed for.
The go-to choice there is obviously Chrome, since it has the most users. Photoshop Express is a free application developed with the hopes of hooking people onto buying a subscription. Thus they’d want as big a reach as possible. It would make no sense to develop for Firefox and push people to use that instead from a business perspective, most people wouldn’t just download a second browser just to use an app.
Edit: you can obviously spoof your user agent and bypass the check that way. Some features might be broken in Firefox though, and I wouldn’t expect a fix.
> This means that when developing your application you need to keep track of what differences each browser has, and write/use polyfills or conditionals to ensure that your methods work as expected on all platforms.
core-js
has existed for nearly a decade