I've been shilling for Firefox for years. It is my primary browser for both development and personal use. But I still think it has some catching up to do with Chrome.
I have a web app that allows customers to make templates for their standard operating procedures that they pull from our main product. For writing steps and substeps, I use a WYSIWYG HTML editor called TynyMCE. I went with it because I was able to implement it in an afternoon, their licensing was compatible with our use, and I had a tight deadline.
We failed to anticipate just how large some of the templates clients would be making, so sometimes when they open a template they end up having a couple hundred of these editors hidden behind drag and drop enabled accordions.
Firefox chokes on the initial TinyMCE calls for these large templates, taking quite a long time to fully render the page. Once it's done, everything is nice and snappy, but it's like a 20-30 second wait after the wire even on my beefy 5900x.
Chrome seems to handle this just fine.
It's possible that the culprit is a bad polyfill or a Firefox-specific bug in TinyMCE, I haven't put much work into diagnosing it yet beyond verifying that TinyMCE is eating up all the CPU time. For now my planned solution is to just write my own WYSIWYG editor, because TinyMCE ultimately offers a lot more than we actually need, and it was only a stopgap solution to get out a polished MVP. But needless to say, for the first time in years, I found myself spending a non-trivial amount of development time in Chrome. Sadly I've never actually had a client use this app with anything other than Chrome or Safari, so this is naturally a low-priority issue.
If you could grab a profile of the problem with the Firefox profiler and file a bug it would be greatly appreciated. From the sounds of it it's probably an edge-case we're not aware of where Firefox performs very poorly. The problem with this kind of things in Mozilla is that we're often blind until someone brings up the issue and notifies us.
Is the profiler a new addition? I'm on Nightly and I recently noticed the appearance of its little speedometer button in my toolbar and I'd be interested to learn more about it. The graphs it generates look nifty, but I have no idea how to interpret them.
The profiler has been there for ages. It's definitely not new. They're moving where it's accessed but it's been under the Performance tab of the developer tools for a long time.
There are two different profilers. There was one in devtools for a long time that was aimed at web content. It was pretty nice for its time, but its time was a long time ago. In a separate project, a profiler for both content and browser UI was developed—that's the one at https://profiler.firefox.xn--comand-5g0c it has been seeing a ton of high quality work for quite a while now. At some point, it was clearly so much better that they started enabling it to optionally focus on web content (though platform stuff is still accessible if you need it). The recent change is the old devtools profiler has been put out to pasture and replaced with the newer one (with presets configured appropriately for web content), and additionally the platform profiler is more integrated so you don't need an add-on or anything; going to https://profiler.firefox.com gives you the option to activate the built-in functionality.
The Firefox Profiler is an amazing piece of work. It's my tool of choice even for non-Firefox scenarios, since it can load in perf profiles (and even Chrome profiles, though I haven't tried that). It has grown into a general profiler front-end, and continues to see significant improvements. I have heard of a number of people adopting it as their system profiler of choice for arbitrary workloads, not just browser-related ones.
(I work at Mozilla, but not on the profiler. At least not most of the time. I've added some small things in to give it more information about my specific subsystem. I have enormous respect for the work going into the profiler, both the functionality and design.)
There is also a lot of catching up to do on Firefox iOS. It is still crashing on heavy and large websites (government websites in my country) and then the more I used it, the more it lags and taking down the whole iOS system.
Is there a public demo or test page for TinyMCE that reproduces the hangs? If not, you could use Firefox's built-in performance profiler to record a profile and file a Firefox bug.
I‘m on the other side of that. I'm constantly throwing large amounts of HTML at Firefox and it just goes on normally, literally 0 slowdown. Add some VueJS for additional fun. I deploy and get Chrome users complaining about performance. One example is that one can not add more than a few hundred options in an Options Select list in Chrome. You can throw literally 10'000 at Firefox. Similar stuff with text fields having 10'000s of rows.
For your own mental health, don’t. I was looking for an old article describing how bad the API is, written by one of the authors of a WYSIWYG JS editor, but I can’t find it.
Are two that I remember reading... nearly 10 years ago, holy hell can someone please make time slow down? Which discuss the common API pitfalls with `contenteditable` -- though I've no idea how painful it is in 2022. Could be a lot better now?
Effectively zero progress. Last year I heard some work being done on an alternative API but I haven’t see that since. I don’t expect anything to be done before 2025 if ever.
Advanced Custom Fields on WordPress allows for "click to initialize TinyMCE" on areas such as that which may be a usable workaround for now. Then you only have 1 initializing at a time,
I evaluated a few different options including Quill, but this problem never would have really come up in my prototypes. The performance issues really are only apparent when you have an obnoxious number of TinyMCE editors on a single page.
The reason TinyMCE won out was because they made self-hosting easy under license terms that my employer was OK with, and wrapping the whole thing in a Vue component only took me a few hours.
Do you need to have them all active at once? One option could potentially be to enable instances on click and disable on blur or similar.
FWIW, TinyMCE is a bit long in the tooth these days. I implemented my own from-scratch WYSIWYG editor back in 2010, and it wasn’t even the best option then (ckEditor was much better), and many people were using the unreliable lightweight jquery based editors because TinyMCE was considered too heavyweight.
I wouldn’t like to say for sure that’s it’s the source of your problems (Firefox’s contenteditable implementation is also “quirky”), but it could well be.
Also keep in mind although Firefox containers is made by Mozilla it's a plugin that you have install, which was very counter intuitive when I first wanted to use it.
The plugin is technically just a management interface for functionality that is already in the browser. FF just doesn't surface it by default, because devs think it would scare casual users.
That's not the only reason. The other reason is that although it's pretty obvious to any one person how it should work, no two people's ideas are the same. Depending on how you are using containers, the answer to a number of questions can be completely opposite to someone else's usage. The theory was that Firefox would provide the underlying functionality, and specialized addons would specialize it to a style of usage.
In practice, it feels like that has hurt adoption. You can't pave the cowpaths if the cows aren't venturing out of the corner of the field.
Honestly the implementation seems half baked, it's very hard to move sites to new containers, there is no list of sites with containers they belong to, etc. I don't know why you'd add a feature in the first place and then decide to hide it for vast majority of users instead of going the extra mile of making it user friendly and intuitive.
Probably because it's a bit of a difficult thing to explain to users in the first place. Instead, by providing just "primitives", they opened the doors to focused add-ons (like the one that isolates Facebook, effectively the first large-scale deployment that used it) without spending too much time on a feature that folks might have found difficult and might result in increased support issues. The status quo is that power-users can make it work, add-ons can use it if they wish, and the overwhelming majority of users can carry on happily ignoring its existence; not a terrible trade-off. But I agree that the management add-on could be better.
I believe Apple is doing something similar with their virtualization API - it's there, some folks can use it, but they don't want to surface it to the masses.
I mean relative to the effort put into building this feature making the UI intuitive shouldn't be a huge task. Think when FF released "tabs" for the first, super intuitive and instant adoption. I wonder if FF is short on UI/UX contributors.
I leave Safari as my default browser, although I actually use it the least. But I like having the same "default" experience on my desktop and phone. If I am opening a link from Mail.app or punching something into Alfred it will open in Safari. I use some light ad-blocking.
I use Chrome for work. I use Google Translate a bit and this works extra well in Chrome. Plus, Google apps and whatnot. Limited ad-blocking because I'm often using ads platforms.
I use Firefox for all my intentional/casual browsing. Maximum ad blocking.
You can also set a browser chooser as the default, and have choose which browser you want to open each link in. I’ve written my own, and it even lets me pick which chrome profile I want to open in.
I use Vinegar[1] on iOS and macOS. It renders YouTube using the native system video player, and strips all the cruft (up next, recommended, etc). It has the side effect of removing ads.
> Prevent YouTube from tracking your play/pause/seek activities.
(/rant)
I know this it heresy to say on HN, especially coming from someone who whines about gov surveillance as much as the next person, but I personally love YouTube's recommendation system. And I know from experience it uses what you actually spend time watching to make recommendations (not just what you click on). So I'd personally miss having them be able to measure that...
I feel like YouTube knows me better than any other service I use (besides maybe Spotify which also measures what you actually listen to) and I pay to be a YT subscriber so I don't se ads on iOS mobile (jailbreaking doesn't provide with me ROI).
I hear a lot of HNers complain YouTube recommends conspiracy or negative politics stuff (see: Twitter and Reddit for that who also completely suck at recommendation systems despite aggressive analytics) but to me it sounds like a) they don't actually use YouTube often enough to tell it what you want or b) they are using blockers/not logged in so it can't learn what you like.
BUT THAT BEING SAID, getting to use a minimalist <video> tag sounds very nice otherwise.
Personal experience: Battery drain was always my problem with Firefox on MacOs. Why when using Safari it is nice and full day surfing w/o recharge; but doing the same with Firefox would discharge laptops battery much faster.
Did they work? Yes! Performance on lightly loaded systems was about the same as OSSpinLock but on loaded ones, they provided massively better responsiveness. They also did something extremely useful for laptop users: they cut down power consumption as a lot less cycles were wasted having the CPUs spinning on locks that couldn’t be acquired.
To no one's surprise, one has to use Apple's undocumented APIs to be able to match Safari's power use.
Odd that you’re being downvoted. If the article had shown that Safari or the system allocator used this locking strategy then that would be evidence, otherwise the person you responded to is just making things up
Battery life seems like an afterthought for anything other than Safari (and back when it was Trident-based, MS Edge on Windows), which is kinda weird when one considers how laptops have come to dominate computing.
I wish Mozilla had been able to keep pushing harder with their servo project. IIRC, one of the earliest upsides I remember hearing about to justify creating Rust (in order to build servo) was that the increased safety with regards to concurrency could allow a web renderer to parallelise computation across _underclocked_ cores, thereby setting a new benchmark for battery consumption.
Granted, that was more about mobile devices but it still stuck with me. Effortless and safe concurrency would tip the scales to having hundreds of low power cores instead of a dozen high powered cores. I want that world, esp for mobile devices and laptops.
When I worked on Firefox for Android, we were constantly fighting for the broader Firefox org to take mobile more seriously —- if Gecko excelled on mobile with respect to power consumption, then a lot of that would spill over to desktop platforms “for free.”
Unfortunately nothing had improved by the time I left in 2021.
From my understanding, Chromium/WebKit/V8 and Firefox/Gecko/Spidermonkey are the last (major) contenders in the browser engine space. After Opera switched to WebKit in 2013. And Edge in 2020. I'm sure there are numerous lesser known ones...
* Blink (Google)
* WebKit2 (Apple and some folks, mainly WebKit2Gtk)
* Gecko (Mozilla)
Microsofts Trident is dead, they now use Blink.
Operas Presto is dead, they now use Blink.
KDEs KHTML (the predecessor of WebKit1) is dead.
Google is dominating, pushing through Android, all Googles-Services and Microsoft Edge. A reason to worry because Google controls the Web and the Engine. Furthermore implementing an entire new engine seems an enormous effort. For instance Microsoft only allows usage of Microsoft Teams Web with a webbrowser based upon Blink. So were back in 2002?
WebKit features also WebKit2Gtk (Epiphany) and Qt5-webkit (Otter) with native integration. Both use the native toolkits, which is an advantage! Interaction with the open-source community around WebKit seems rather good and the engine is integrated by others. Gecko seems not to be integrated by others but by forks only? You remember when Chrome was considered slick and fast? Originally Chrome used the native toolkit on every platform. Now Chrome ships an own toolkit, similar to Firefox.
Google forked from WebKit in 2013, at this point there might be huge differences between WebKit and blink. Someone more knowledgeable might add something to this.
This. Firefox drains battery, but still less than Docker & a TypeScript dev environment. Using those three together means my M1 Air falls a LONG WAY SHORT of the 18hr battery life I was promised
I had to do a double take when I read the parent, but I suspect they were referring to running Linux to avoid the Virtual Machine overhead on MacOS. However I doubt the Linux driver support for the M1/M2 has anywhere near the level of power optimization as the MacOS drivers.
There isn't any other OS that you'd want to run as a daily driver on that hardware platform atm. Linux support is still immature/incomplete, and IIRC Windows support is completely absent. (Some of the people working on the Linuc port are also porting to some of the free Unices, too, which I assume are in a similarly incomplete state.)
If you think that persons battery life woes are bad, you should see how horrible my Windows/Ubuntu Intel work laptop is when running the same software.
I’ve been on brave for about 2 years now and all I see people talk about is Firefox. Should I swap? I thought people liked brave but I really don’t see it mentioned anymore.
Depends what you care about. I think there are two main reasons to use Firefox over Chrome:
- better privacy protections
- not wanting to leave web standards entirely to Google/Apple (for-profit corps)
Brave attempts to address the first, but does little about the second as it uses Blink (i.e. Chrome's engine). Personally, I care a lot more about the second.
I use Brave and Firefox primarily on my Linux computers (and Safari on MacBook for battery reasons already mentioned). I just switch between them for different purposes. Usually Brave for Gmail or Google Docs, and Firefox if I need some extension not available in Brave (Firefox still seems to have more robust extension capability).
I have uBlock origin on brave so that’s moot, but I don’t use nextDNS. Is there a reason to use it when I’ve already got brave/uBlock killing most ads and trackers? (I also use proton VPN, not that it’s quite as relevant but figured I’d throw it out there).
We'll see what Brave can do to work around it, but chances are that content blockers are going to be handicapped when Manifest v3 is fully implemented.
Firefox will have no such problem, as Mozilla has specifically committed to keeping the necessary features.
Personally I still use NextDNS to help me kill ads on mobile, and also keep a tighter leash on my various IoT devices. You can block more than just ads with it and it also gives you interesting data, hard to beat for less than the price of a cup of coffee each month.
So I’m an usual user here - I’m tech savvy compared to most people (film/television background and just a general nerd) but I am a Luddite compared to y’all around here.
I imagine it’s not hard to set up, but what does it give me that ad guard + proton + brave (mobile) and proton + brave w/ uBlock origin (Mac) don’t?
Yeah its super easy to set up, but the biggest reason you would want to use it in addition to other adblocking stuff is that it works outside of browsers - you can block telemetry from your smart lights, you can stop a random app on your phone from showing you ads etc etc.
It does in theory also help block some malicious sites so you do get a bit of added security in that way. That can also be helpful if you have kids - block sites you don't want them on etc.
Personally I've also found their servers to be reasonably performant, no issues with query response times or anything like that.
Same situation. I switched to Brave a couple of years ago (from Firefox) and I occasionally check in on Firefox to see if I should switch back. I haven't seen a reason yet. Things like full screen support in YouTube sees a bit janky still. I like where Brave is going with getting rid of cookie consent and other annoyances without extensions.
Do you care about vertical tabs? (if not, you must not have many tabs open at once) If so, your choices are: Opera, Edge or Firefox with one of two extensions (I use Sidebery).
Thanks for that info! I think nested tab are lame as it wastes some of the tab title length. I use a browser window for each high level topic, which mimics the advantages of high level nests.
This is a fair point. In recent years (before Brave supported tabs, but after I left Firefox), I had to use a single window because the TST-style tab manager sat beside it in a separate window. This was annoying enough even with a single browser window, and it was unmanageable with multiple windows.
But now that I'm using native tabs, it is much easier for me to use multiple windows because the tabs are attached. Thanks for pointing this out!
Just to add another suggestion to the multiple windows approach: the Titler extension allows you to name each window so that the title shows up before the current tab name of that window. Unfortunately, Sidebery doesn't pick it up, which makes moving tabs between windows a bit of a pain...
I wonder whether this could be related to "profile bloat" or something.
It's not a direct apples to apples comparison, but my anecdotal evidence, on Linux, is the opposite. I usually use Firefox on my Linux/X11 box, but every now and again I fire up Chromium and always get the feeling that it's much snappier.
I may be mistaken, but I have found the Microsoft Edge to have done considerable catching up. In my Mac and on PC, it beats Chrome anyday in performance and ease of use. I understand that Microsoft have reasons to invest heavily on a modern, nimble browser. But do we have any other reasons - like trying to conquer a new market etc. Behind this?
* CPU Usage is extremely higher than in chrome for video call/meeting related websites.
* Font rendering is horrible on a lot of websites. I think this is more fault of the website developers, but it doesn't change the fact that I as end user with Firefox have subpar experience.
* The native OS integration seems very janky, from swipe to go back, to pinch to zoom, something feels off about them.
* I've encountered a lot more websites that didn't quite work smoothly. This is same as one of the points above of web developers being at fault here, but it still doesn't change my experience with FF.
I want to use Firefox, but not if it degrades my experience - which it currently very noticeably does.
With all the things they've addressed in Firefox recently and with Chrome's manifest v3 nonsense, I'm running out of reasons not to switch.