Profile management / multiple profiles in Firefox - ask your questions here!

Hey all :waving_hand:

Since shipping the multiple profiles feature in Firefox last year, we’ve had some pretty detailed power user questions on Connect, which is a bit of an awkward place to get way into the details.

I’m going to start redirecting those conversations over here, as Discourse has better support for threaded discussions (and, mailing list support too!).

In the meantime, if you have questions about the multiple profiles feature, especially how it fits together with the legacy about:profiles / profiles.ini profile management system, please ask :slight_smile:

Thanks - Jared

2 Likes

Hi, thank you for starting this thread! Let me jump in with a couple of questions.

If I create profiles from many different profiles (and different types of profiles), is there a chance to break Firefox that way? :smiley: I know there are safeguards for concurrent profile management, but is there a possibility that one of the profiles will pick up a wrong database / create a new one?

From the SUMO perspective, we get many questions from users who “lost” their data after being promoted by our messaging to create a new selectable profile and being switched to that fresh profile. Are we considering improving the messaging for existing legacy profiles users?

In addition to the above, sometimes something weird happens, which very much looks like a bug. Does it make sense to redirect such people to Bugzilla? I mean:

  1. Is there a way to understand what happened in the cases of data corruption, for example?
  2. Are there people willing to investigate such reports at all?

Also, just out of curiosity. I haven’t really dig into that, but from what I understand, the only difference between legacy and selectable profiles are colors/icons (which prevents us from using the legacy profile type, because there’s no place for those fields). Is that understanding wrong? You mentioned concurrency on Reddit, but didn’t we have that for legacy profiles already?

And thanks again for giving us the priority to ask questions! Hope you (won’t) regret this :smiley:

Great questions and thanks for starting off the thread! :grinning_face:

First off, please do send folks with profiles problems to Bugzilla (or file bugs for them, if they aren’t able or interested in filing a bug). We triage the bugs regularly, and it’s important for us to keep track of how many users are reporting problems so that we can look for trends. Some issues may be duplicates of known weirdness bugs collected under the metabug https://bugzilla.mozilla.org/show_bug.cgi?id=1991913.

Also, to address your 2 questions in reverse order :upside_down_face:

  1. Are there people willing to investigate such reports at all?

Yes! We (engineers who worked on profiles) continue to triage bugs as they come in, and we are continuing to do work to improve the system as time allows (we’re all staffed on other things but have some time allotted for maintenance work).

  1. Is there a way to understand what happened in the cases of data corruption, for example?

Yes, it depends on what exactly the user has been doing prior to apparent data loss.
It is important to clarify that profile data is almost never lost, as in destroyed. What tends to get broken is the connection between the user’s profile and its entry in profiles.ini, which we use to find the profile at startup.

Now, to answer your other questions:

If I create profiles from many different profiles (and different types of profiles), is there a chance to break Firefox that way? :smiley: I know there are safeguards for concurrent profile management, but is there a possibility that one of the profiles will pick up a wrong database / create a new one?

Also, just out of curiosity. I haven’t really dig into that, but from what I understand, the only difference between legacy and selectable profiles are colors/icons (which prevents us from using the legacy profile type, because there’s no place for those fields). Is that understanding wrong? You mentioned concurrency on Reddit, but didn’t we have that for legacy profiles already?

I’ll have to explain the profile system in a bit more detail. (Note: I started on a comment but it pretty quickly ran past 1000 words, which seems long for a discourse comment, so I’m going to turn it into a blog post and link to it here instead.)

Actually let me try to answer the concurrency question very quickly:

Concurrency doesn’t mean support for running multiple instances of Firefox, one profile per instance–it means multiple instances, each using a profile from a profile group, and each instance showing the same up-to-date profile data in the menus.

So, if you have “work” and “home” and “school” profiles open, then you change the avatar for the “home” profile, the menu UI in “work” and “school” should immediately show the changes to the “home” profile.

In concurrency terms we need a datastore that supports single-writer / multiple-reader (SWMR) semantics.

The legacy toolkit profile system stores its data in a flat file, profiles.ini. Unfortunately, filesystems don’t provide reliable SWMR support across all the operating systems Firefox supports.

SQLite does offer SWMR via shared-memory write-ahead logging (WAL), and the version of SQLite vendored in-tree has WAL support enabled. So, we added a separate new SQLite database in a cross-profile location to hold the data we need to display in the new multiple profiles UI surfaces (the menus and the startup-time profile selector window).

And it’s this cross-profile connection (managed via the StoreID pref and the StoreID property in profiles.ini) that seems to frequently be breaking in power user workflows.

Before the new profile scheme was started I was able to click links in Thunderbird and have them open in Firefox Nightly. The links no longer work – nothing happens on a click. When I run Thunderbird from the command line no errors are shown in the console when I link.

I’m using Ubuntu with XFCE and run a private install of Firefox Nightly. My default application for a web browser is: /home/DIRECTORY/firefox -P PROFILE_NAME “%s”

What do I need to do to open HTML pages in Firefox from links in Thunderbird?

@bjh Hmm, what you’ve described should work. When did the problem start? Have you used the new profiles UI to create additional profiles? What profile name are you using for PROFILE_NAME? Have you confirmed that name is listed in profiles.ini and points to the expected path?

(We might want to take this to a bug report, as the cause of your problem isn’t immediately obvious to me.)

XDG support landed fairly recently (bug 259356) but I don’t know if that includes migrating profiles to the new standard location. Regardless, just referring to the profile by name using -P should work.

@bjh I’d think (hope) your issue isn’t related to changes in Firefox profile handling.

Are you using Thunderbird daily? Does it work with TB ESR?

I’ve created profiles with both the old and new mechanism – mostly for testing. The profile name is ASanNightly, named because I was using ASan Nightly when I created it. The profile name is correct because 1) the command works from the command line, and 2) I haven’t changed the name of the main profile in years. (And, yes, it is in profiles.ini.)

I’m using the release version of Thunderbird on Ubuntu. Currently Thunderbird 140.8.1esr (snap version) on Ubuntu 24.04.4 LTS. I haven’t tried using other versions of Thunderbird with that profile.