Silverblue: Why Not Prefer Firefox Flatpak Over Native

The issue with the native Firefox is that it lacks a bunch of codecs, that are non-free. To solve this, you either have to

  • Layer the codecs from third-party repos like RPM Fusion
  • Install the Flathub version of Firefox

I personally don’t want to alter the system image, so I would like to use the Flathub version of Firefox. But then you have two indistinguishable versions of Firefox installed. To solve this, you have to override-remove the Firefox package from the system image, which requires the terminal, a reboot and is just less convenient (more so for new users of course). Both solutions really aren’t ideal, and this issue would be solved if Firefox was shipped as a Flatpak instead. There is even a Flatpak version in the Fedora Flatpak remote, so why is it still shipped as native?


As of Fedora 35, there’s even a filtered list of Flatpaks that can be installed from Flathub without adding Flathub as a remote:

However, none of these are installed by default, as a web browser would have to be. Additionally, Fedora’s Firefox build is included in Workstation too. Also, unless things have changed, Firefox is not part of this list, even though the build of Firefox on Flathub is official and directly comes from Mozilla.

From Fedora’s viewpoint, it still probably makes sense to build something as critical as a browser and have it included by default. You’d want a browser installed “out of the box” so to speak, and it should be Free Software / Open Source.

So… what’s the best approach?

Use GNOME Web as the default and make Firefox easily installable, but not installed by default? GNOME Web is nice, but has some performance issues and has the same issues at playing media that Fedora’s Firefox has and it doesn’t support extensions (yet). Although GNOME Web is a nice, capable browser, for most people it’s more of a sidegrade at best, and many would consider it a downgrade. (Although some people do use it as their main browser.)

Have a snapshot of an official Mozilla Firefox build in a Fedora release, which would be updated once online? It would be a binary blob that’s built by a third party (in Fedora’s point of view) and not built nor controlled by Fedora.

Make the Flathub version of Firefox hide the Fedora one? This seems to make the most sense, so Firefox can be shipped by default and “replaced” by the official Flathub version (even if both might be installed on disk). But it still requires people somehow knowing why Firefox cannot play some videos on the Internet and do something to work around that problem.

Make Fedora’s Firefox compatible with the codecs from Flathub? There are probably technical limitations and UX issues with this approach too. It definitely would require Fedora’s Firefox Flatpak’d instead of being shipped as RPM and also as part of an ostree deplyment.

There’s not a completely straightforward answer.

(For what it’s worth, I install Firefox from Flathub and try to ignore the duplicate on-disk version shipped with Silverblue by pinning the Flathub Flatpak Firefox to my dash in GNOME.)

I think the “best approach” would be to simply ship the Firefox from Fedora’s Flatpak remote, the same way all other applications are shipped. This Firefox Flatpak currently exists (app/org.mozilla.Firefox/x86_64/stable), it is built the same way as the RPM - yes this also means that codecs are missing but at least it’s easily uninstallable/replacable.

One topic, two discussions, see Silverblue: Why Not Prefer Firefox Flatpak Over Native - Ask Fedora

I’m OK with Firefox in the Silverblue image, but better instructions/help with how to add the RPM Fusion codecs for those who want them would be very helpful.

(In general, RPMFusion made it hard to upgrade from Silverblue 35 to 36 Beta. There were issues.)