If you've updated your installation, the new renderer will be the new version, but the parent (ui) process is still the old version. The protocol the two use to talk to each other is not fixed, and messages will start looking malformed. Malformed messages are handled by immediately terminating the process, because otherwise security guarantees go out the window.
So the upshot was that you'd get various crashes in the "I updated Firefox and then kept using it" situation. I've run into a bunch personally, and there is _lots_ of crash reporting data on this. The crashes are not OS-specific; they just have to do with whether changes happened to the IPC protocol.
A "proper" solution would be for the parent process to not use the on-disk version of the renderer to launch new renderers. There's work ongoing to make that possible, but in the meantime the crash volume due to this problem was high enough that the mitigation you see was put in place.
1. Why update an app when you're in the middle of using the app? I dunno, I use Fedora, so I don't execute 'dnf update' until I'm ready to reboot the system, usually because I'm anticipating a kernel update. 2. Firefox has a pretty reliable "Restore Previous Session" feature that works well. I have also been known to throw a SIGTERM at Firefox and just let it prompt me when I start it again for the "Something went wrong, should we restore your session?". Seems to always work for me.
Updates are automatic every day.
>I use Fedora, so I don't execute 'dnf update' until I'm ready to reboot the system, usually because I'm anticipating a kernel update
How often does that happen? It doesn't seem reasonable to put off security updates that have already been fixed and are simply waiting to install.
Firefox is the only program I've run into where automatic updates have led to a negative experience. Every single other program handles them just fine.
Restore session doesn't help if you're in a private session.
Also you may be in the middle of actually using your browser for thing that you don't want to interrupt, a game, an online application, anything really..
Don't do automatic updates if you do not want automatic updates. Automatic updates just absolutely can cause you to have to restart stuff, depending on what got updated exactly.
I haven't rebooted my system in days, and I make updates twice a day...
Snap and Flatpak apps I think can do this as well, because they aren't stepping on the running binaries during the update. And you get the updated version when you relaunch.
Firefox isn't special in this regard. 100% of my applications on Windows and macOS expect to be quit before they can be updated, and is enforced either by the application, the OS, or the updater. I suspect that distro package managers don't really have a way to do an out of band update, all they can do is step all over in-use libraries and that inevitably causes the application to go a little crazy.
I'll add the caveat that I typically restart my browser at least once a day, perhaps avoids the problem.
Later it stopped to crash, but acted weirdly (clicks on links didn't work, etc).
Nowadays we have the notice to restart the browser. It didn't arrive years ago, just a few releases ago.
This was only under Linux, and only with the distro package managers. Under Windows or MacOS, the updater updates the browser on next restart, so this didn't happen.
Quite inconvenient.
My browser is open when my computer is running. I do updates at random times through-out the day, for example before installing new packages. Having to close my browser leads to dead sessions and text being lost from input fields and whatever other state there might be.
My guess is that this is some per-tab isolation/process stuff that would result in a mismatch between tabs from before the update and tabs after the update.
This package currently ships no functionality, but may be used again in
the future to display a restart notification after upgrading Firefox.On MacOS or Windows (maybe even Linux with the Mozilla updater, never tried it), the updater does the update on the next restart.
Chrome on macOS and Windows keeps itself up to date; for whatever reason Chrome on Linux installs a google.chrome repository, uses the distro package manager, and clobbers the running binary. shrug
This is not a problem on Unix-like systems, actually. Any running process, that has some file open, will keep the original file open, even if the filename points to another file now. Only processes that open the file after the change will get the new version.
I suspect that the protocol that multiple processes of Firefox used to communicate together could change between version and the mismatch between old and newly launched processes caused the problem. So it is versioned now, and if the versions are mismatched, warning is being shown.
> for whatever reason Chrome on Linux installs a google.chrome repository, uses the distro package manager, and clobbers the running binary
As others have said, it is actually the right approach. The custom updaters for Firefox and Chrome under Windows and MacOS are there, because they are lacking any system for centralized package management.
Flatpak solves this in a third way: it doesn't clobber the current tree, it creates a new, separate one and signals the application, that it was updated, and can restart into a new version, when it is convenient. It gets the best of the custom windows/mac updaters (not overwriting running apps), together with the best of linux package managers (centralized management).
Because that's the proper way to do things instead of each application bypassing the package manager and downloading updates and whatever else behind your back. How would you track and control updates if each application you use decided to do its own thing? Secondly, if installed to system directories, applications cannot write there without superuser privileges.
They removed the "never check for updates" option and nag nag nag to update.
I unintentionally updated multiple times when the nag menu conveniently appeared while I was pressing the keyboard.
The last accident made me firewall Firefox's update program.