Skip to content

Fix "Make default browser" on Linux

Spinnin off #87, since it has more Windows stuff than Linux, even though we have also a separate Windows issue, so creating the Linux one.

Things to figure out:

  • the .desktop file needs to be in the correct place:
    • how are we expecting the file to end there? At the moment there's a --register thing, but it isn't a great UX at all
    • we could have the browser copy the file somewhere to the right subdirectory of the home for portable mode
      • users expect the browser to be self contained when running in portable mode, should we warn them about the copy?
      • we override $HOME, this is yet another thing that the override might hurt
    • the .desktop file should add the browser to the applications menu, whatever implementation a users uses (GNOME, KDE, Mate, XFCE, etc...).
      • Are we expecting users to be able to add more channels, but one "installation" at the time? Because the .desktop needs a name 🙂.
        • If we keep only one installation per channel, using a different name Mullvad Browser Alpha.desktop or mullvad-browser-alpha.desktop should be fine
        • Possible problem: when we check a browser is set as a default, we also need to check the file is pointing to the right directory, with a lot of false positives/negatives
      • An alternative is that we add a suffix to relate to a certain installation
        • Might solve the problem, but this usually freaks out a series of users, even though this random ID isn't available to content. In general, it's something we try to avoid
      • If we end up allowing multiple channel and register (aka copy) the .desktop file to the right directory from the browser, should we add a second button, to register the browser without making it the default?
    • What about uninstallation?
      • Currently it can be done from the start script (if it works). Should we add a button also to unregister, if we add one to register?
  • Open problem: snap installation.
  • Less difficult problem: an actual system install, which will add the right .desktop file where needed, and will be updated through the package manager (no in-browser updates as well, makes our life easier 🎉)

/cc @ruihildt

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information