Desktop Linux has a Firefox problem

There’s no denying that the browser is the single-most important application on any operating system, whether that be on desktops and laptops or on mobile devices. Without a capable, fast, and solid browser, the usefulness of an operating system decreases exponentially, to the point where I’m quite sure virtually nobody’s going to use an operating system for regular, normal use if it doesn’t have a browser. Having an at least somewhat useable browser is what elevates an operating system from a hobby toy to something you could use for more than 10 minutes as a fun novelty.

The problem here is that making a capable browser is actually incredibly hard, as the browser has become a hugely capable platform all of its own. Undertaking the mammoth task of building a browser from scratch is not something a lot of people are interested in – save for the crazy ones – made worse by the fact that competing with the three remaining browser engines is basically futile due to market consolidation and monopolisation. Chrome and its various derivatives are vastly dominant, followed by Safari on iOS, if only because you can’t use anything else on iOS. And then there’s Firefox, trailing far behind as a distant third – and falling.

This is the environment desktop Linux distributions find themselves in. For the longest time now, desktop Linux has relied virtually exclusively on shipping Firefox – and the Mozilla suite before that – as their browser, with some users opting to download Chrome post-install. While both GNOME and KDE nominally invest in their own two browsers, GNOME Web and Falkon, their uptake is limited and releases few and far between. For instance, none of the major Linux distributions ship GNOME Web as their default browser, and it lacks many of the features users come to expect from a browser. Falkon, meanwhile, is updated only sporadically, often going years between releases. Worse yet, Falkon uses Chromium through QtWebEngine, and GNOME Web uses WebKit (which are updated separately from the browser, so browser releases are not always a solid metric!), so both are dependent on the goodwill of two of the most ruthless corporations in the world, Google and Apple respectively.

Even Firefox itself, even though it’s clearly the browser of choice of distributions and Linux users alike, does not consider Linux a first-tier platform. Firefox is first and foremost a Windows browser, followed by macOS second, and Linux third. The love the Linux world has for Firefox is not reciprocated by Mozilla in the same way, and this shows in various places where issues fixed and addressed on the Windows side are ignored on the Linux side for years or longer.

The best and most visible example of that is hardware video acceleration. This feature has been a default part of the Windows version since forever, but it wasn’t enabled by default for Linux until Firefox 115, released only in early July 2023. Even then, the feature is only enabled by default for users of Intel graphics – AMD and Nvidia users need not apply. This lack of video acceleration was – and for AMD and Nvidia users, still is – a major contributing factor to Linux battery life on laptops taking a serious hit compared to their Windows counterparts.

The road to even getting here has been a long, hard, and bumpy one. For years and years now, getting video acceleration to work on Firefox for Linux was complicated and unreliable, with every release of the browser possibly changing what flags you needed to set, and sometimes it would just stop working for several releases in a row altogether, no matter what you did. There’s a venerable encyclopaedia of forum messages, blog posts, and website articles with outdated instructions and Hail Mary-like suggestions for users trying to get it to work. Conventional wisdom would change with every release, and keeping track of it all was a nightmare.

It’s not just hardware accelerated video decoding. Gesture support has taken much longer to arrive on the Linux version than it did on the Windows version – things like using swipes to go back and forward, or pinch to zoom on images. Similarly, touchscreen support took a longer time to arrive on the Linux version of Firefox, too. Often, such features could be enabled with about:config incantations for years before becoming enabled by default, at least, but that’s far from an ideal situation.

With desktop Linux trailing both Windows and macOS in popularity, there’s nothing unexpected or inherently malicious about this, and the point of the previous few paragraphs is not to complain about the state of Firefox for Linux or to suggest Mozilla transfers precious resources from the Windows and macOS versions to the Linux version. While I obviously wouldn’t complain if they did so, it wouldn’t make much sense. The real reason I’m highlighting these issues is that if Firefox for Linux is already treated as a third wheel today, with Mozilla’s current financial means and resources, what would happen if Mozilla saw a drastic reduction in its financial means and resources?

Firefox is not doing well. Its market share has dropped radically over the years, and now sits at a meagre 3% on desktops and laptops, and a negligible 0.5% on mobile. Chrome and to a lesser extent Safari have trampled all over the venerable browser, to a point where it’s effectively an also-ran for Linux/BSD users, and a few more nerds on other platforms. I’m not saying this to disparage those who use Firefox – I’m one of them – but to underline just how dire Firefox’ current market position really is. This shrinking market share must already be harming the development and future prospects of Firefox, especially if the slide continues.

The declining market share is far from the biggest problem, however. The giant sword of Damocles dangling above Firefox’ head are Mozilla’s really odd and lopsided revenue sources. As most of us are probably aware, Mozilla makes most of its money from a search deal with Google. Roughly 80% of Mozilla’s revenue comes from Google, who pays the browser maker to set Google Search as the default search engine.

How long will this deal continue? Will it be renewed indefinitely, regardless of how much farther Firefox slides into irrelevance? Will the size of the deal drop, or will it end altogether? When will Google decide that spending hundreds of millions of dollars every year in what is essentially charity for a competitor is no longer worth it, or needed? Google’s similar search deal with Apple is already facing legal scrutiny; will that scrutiny have consequences for the deal with Mozilla, too?

Just ask yourself this question – if Mozilla’s funding dries up because Firefox’ market share declines further, the Google deal falls through, a combination of the two, or even other factors not mentioned here – which version of Firefox is going to feel the cuts first? What will Mozilla do to soften the blow? Are we going to see sleazy deals with other companies as Mozilla grows increasingly desperate? Shady crypto nonsense? “Allowed” ads in exchange for revenue? More suggested websites and extensions, for a price? Or will the Linux version just get cut entirely, left to the community to take over?

Exactly this happened to Thunderbird. It took Thunderbird almost a decade to fully recover. This could happen to Firefox for Linux, too.

This is desktop Linux’ Firefox problem. The single most important desktop Linux application is already in dire straits, and it seems inevitable that things are only going to get worse from here on out. Yet, I don’t see anyone talking about this problem, or planning for the eventual possible demise of Firefox, what that would mean for the Linux desktop, and how it can be avoided or mitigated.

In an ideal world, the major stakeholders of the Linux desktop – KDE, GNOME, the various major distributions – would get together and seriously consider a plan of action. The best possible solution, in my view, would be to fork one of the major browser engines (or pick one and significantly invest in it), and modify this engine and tailor it specifically for the Linux desktop. Stop living off the scraps and leftovers thrown across the fence from Windows and macOS browser makers, and focus entirely on making a browser engine that is optimised fully for Linux, its graphics stack, and its desktops. Have the major stakeholders work together on a Linux-first – or even Linux-only – browser engine, leaving the graphical front-end to the various toolkits and desktop environments.

Obviously, this won’t be easy, and will take serious investments in time, resources, and people. However, by focusing entirely on Linux alone, you wouldn’t really be competing with Blink and WebKit, who don’t take desktop Linux seriously at all (Chrome still doesn’t have hardware video acceleration on Linux). Let those other engines fight for the various proprietary platforms – Linux needs a browser engine that is independent of Google (and Apple), and takes Linux seriously as a platform.

I’m genuinely worried about the state of browsers on Linux, and the future of Firefox on Linux in particular. I think it’s highly irresponsible of the various prominent players in the desktop Linux community, from GNOME to KDE, from Ubuntu to Fedora, to seemingly have absolutely zero contingency plans for when Firefox enshittifies or dies, despite everything we know about the current state of the browser market, the state of Mozilla’s finances, and the future prospects of both.

Desktop Linux has a Firefox problem, but nobody seems willing to acknowledge it.

59 Comments

  1. 2023-08-13 3:03 pm
    • 2023-08-14 7:03 am
      • 2023-08-14 9:49 am
    • 2023-08-15 2:55 am
      • 2023-08-15 10:00 am
  2. 2023-08-13 4:09 pm
    • 2023-08-14 9:54 am
    • 2023-08-14 11:46 am
  3. 2023-08-13 4:22 pm
    • 2023-08-13 4:44 pm
      • 2023-08-13 4:56 pm
        • 2023-08-14 2:14 am
        • 2023-08-15 6:55 pm
      • 2023-08-14 6:24 am
    • 2023-08-13 5:34 pm
      • 2023-08-14 9:56 am
        • 2023-08-14 10:32 am
          • 2023-08-14 11:09 am
        • 2023-08-14 11:05 am
    • 2023-08-13 8:05 pm
      • 2023-08-13 9:31 pm
      • 2023-08-14 12:13 pm
        • 2023-08-14 12:39 pm
          • 2023-08-15 9:58 am
    • 2023-08-13 9:40 pm
    • 2023-08-14 7:11 am
    • 2023-08-14 12:08 pm
  4. 2023-08-13 4:28 pm
    • 2023-08-13 5:54 pm
      • 2023-08-13 10:06 pm
        • 2023-08-14 12:29 am
    • 2023-08-13 11:14 pm
      • 2023-08-14 1:45 am
  5. 2023-08-13 4:58 pm
  6. 2023-08-13 8:43 pm
    • 2023-08-13 9:37 pm
      • 2023-08-13 10:11 pm
        • 2023-08-14 1:01 am
          • 2023-08-14 6:29 am
          • 2023-08-14 10:40 am
    • 2023-08-13 10:10 pm
      • 2023-08-13 10:12 pm
        • 2023-08-14 2:30 pm
  7. 2023-08-13 10:07 pm
    • 2023-08-14 1:23 am
      • 2023-08-14 2:37 pm
    • 2023-08-21 5:48 pm
  8. 2023-08-14 11:32 am
  9. 2023-08-14 11:37 am
    • 2023-08-14 1:17 pm
      • 2023-08-15 10:09 am
        • 2023-08-15 10:51 am
  10. 2023-08-14 3:30 pm
  11. 2023-08-15 4:20 pm
    • 2023-08-15 9:30 pm
  12. 2023-08-18 6:56 am
    • 2023-08-21 6:15 pm