for the most part I've been using Firefox containers and loving that life of getting the same benefits without having to create separate profiles.
but it's nice to see this finally get into Firefox because there are still a lot of folks who also want to maintain things like browser bookmarks, passwords etc in a separate profile. that's the only conceivable useful difference over Containers (which IMHO is slightly better than having to manage multiple profiles)
> that's the only conceivable useful difference over Containers
Actually, I have wanted better profile support for a while to segregate addons. There are plenty of addons that I want to use occasionally that require full data access. I generally do trust them, but even so, I keep these in a separate profile just in case. That is something that can't be done with containers.
Containers are nice, but they are, as you said, not as powerful as the new profiles system (which is, incidentally, almost as easy to use as containers now that we can switch between them right in the UI).
At this time there are essentially three levels of indirection: "legacy" profiles -> new profiles -> containers, that is we can have multiple legacy profiles with each having multiple new profiles, each with an independent group of containers in them.
To choose a legacy profile, use the -P CLI option (with or without a profile name). Once firefox starts, you can switch between the new profiles stored inside the current legacy one using the new UI.
Profiles have always been great, but it's kind of unfortunate that this feature seems to be locked behind a sign-in (the link in the article describes the UI as being in the profile menu).
I mean, I've been using about:profiles for ages, but it would definitely be nice to have a bit more polish (e.g. every now and again I forget that a newly created profile is automatically promoted to default)
[edit] well seems I have to eat my words - there's a switch in about:config named "browser.profiles.enabled" that toggles a profiles menu item with some UI that apparently has existed for years. Nice!
I don't understand some of these comments. Start firefox, pick profile, opens a window in the selected profile.
The only weirdness is when you have multiple windows of different profiles opened at the same time and you open a link from a different application it may open it in the last used window which may not be the one you wanted. But then you can of course just drag and drop the tab from one window to the other.
After shutting down Firefox and restarting, I tried the new profile manager UI just now and also thought I had lost my existing profile. Luckily, it was still available from the hamburger menu (just below the “Synchronise all your devices” option) and I was able to switch back to it (with all my existing bookmarks, containers and extensions).
Profiles are great. I've used them for years. Much better than containers, which separate your data sort-of-but-not-quite. A profile folder has everything. You can copy it, back it up, plug it into a completely new Firefox installation later.
That portability is a killer feature, but scriptability needs to be improved. The manual says you can do:
>`firefox --profile <path> Start with profile at <path>`
But that will not work as expected if you have more than one profile (which is the whole point). At present the only workable solution is to fiddle with a GUI thru `about:profiles` (or `firefox --ProfileManager`) in order to create the profiles and give them all-important UIDs. And then do:
>`firefox -P <UID>`
It may seem small, but I've found that this is a serious roadblock. I wish it could be fixed so as to make profiles entirely scriptable.
PS: to be clear, after the futzing with the GUI to create the profiles, my script works (well!) at opening windows in the right profile, this way: (1) Check if the given profile is already launched: `ps -eo args | grep -E ".(firefox).(-P $UID)" | grep -v grep > /dev/null` (2) Do `firefox -P $UID --new-instance $url` if it isn't, and `--new-tab` if it is. Inelegant, but very reliable.
> But that will not work as expected if you have more than one profile (which is the whole point). At present the only workable solution is to fiddle with a GUI thru `about:profiles` (or `firefox --ProfileManager`) in order to create the profiles and give them all-important UIDs.
FWIW, that's only true if you care about it having those IDs and being exposed to the graphical interface. If you don't, then you can just run `firefox --profile $HOME/.mozilla/firefox/whatever` and it works. I use a small shell script™ wrapper to run firefox this way and it's quite nice. Also helpful: If you run firefox like that, you can just point it at a new empty directory and it'll populate it as a profile, so it's easy to make new ones too.
Unfortunately I don't think you can just transfer willy nilly between firefox versions, at a certain point downgrades don't work, and I'm just trying to figure out where that point is (can you move to ESR for example)
> Much better than containers, which separate your data sort-of-but-not-quite
What is better depends on the use case. For me, containers are magic, because I can be logged into eg 2-3 different microsoft accounts simultaneously in the same window. With profiles or other browsers I would need to open a different window for each, which would be unnecessary and impractical. This is extremely convenient for me, containers is the feature I cannot currently browse without. Sometimes "separate your data sort-of-but-not-quite" may be exactly what you may need.
A roadblock to what workflow? I just have -p in my firefox shortcut and it shows the profile manager every time I launch. I have 6 profiles I use regularly.
Yessss, I've been wondering how to script different FF profiles (just haven't had enough time/motivation). That was the only thing holding me back from making it my daily driver.
Another roadblock that I've encountered is moving a tab between profiles. For a multitude of reasons, foremost between them research, I would often come across a tab that I know would be useful for one of my other research subjects. If the profile in question is closed, there is too much friction to open it, copy the url, paste into a new tab, then close the profile again.
A single "Send to profile" option would be such a boon to productivity.
What an extremely confusing blog post! I don't understand why it seemingly presents profiles as a new feature? Firefox has had profiles for years. What the heck is new?
I wish I could open another profile in one click and/or one hotkey.I have two profiles (pro and personal) and it isn't possible to open the other with a keyboard shortcut. It's also 3-clicks minimum. Not the best UX they could do…
Nice. I've been using Tab Groups Manager, and then Simple Tab Groups for years, but have also at times wished for more control and better separation while preserving ease of use (I really don't want to deal with providing CLI args). Hopefully this bridges the gap well.
The most useful feature with the worst UX. You have to type about:profiles and then create a new profile. But imagin you now want to move old profiles to a new computer and FF happens to run in a Flatpack. Yeah, much fun
Use -p in your shortcut to firefox and it will show the profile manager on launch, from that you can easily create a new profile or open a new window on existing one.
That whole "Profiles don't/aren't just $THIS; they're also $THAT" construction is classic LLM output. Then you've got the weird confusing inconsistencies like calling profiles a new feature when they aren't and there's also the rule of 3 ("avatars, colours, naming", "set boundaries, protect your information and make the internet a little calmer"). It all feels machine-written. Even the comparison of tidying your tabs to setting boundaries seems meaningless. It's just the sort of empty parallels AI loves to make.
It's a short article but I really had to power through it because with every sentence I kept thinking, this is not written by a human. If it is AI-generated slop, that'd explain why some parts of it doesn't make any sense.
Profiles rock. When I was WFH I had a work profile and a personal profile. Password manager synced across the two profiles, really slick experience honestly. I do wish you could change sync settings on a per-profile basis though.
You can change sync settings on a per-profile basis. I have 6 profiles, 4 of which I synchronize between different computers. They use different sync accounts. So for example on my personal profile I sync the passwords but not on the work profile.
Firefox profiles suck. Their UX is so bad. Containers are better but still have their issues. I use Containerise plus Cookie AutoDelete plus Temporary Containers to give me what is effectively per-tab private browsing. The major downside is that I have to copy containers.json (which enumerates all of the dedicated containers I have defined, e.g., for Facebook), my Containerise rules (which automatically puts certain web sites into specific containers), and my Cookie AutoDelete config (which says which cookies to delete and when) among browsers manually. I wish more things supported Firefox's sync feature. I ended up adding them to my dotfiles, so it isn't too painful, but it definitely isn't grandparent friendly.
New feature blablabla... Hey, Mozilla - how about fixing the multiyear old bug, which has like several dozen tickets in bugzilla alone, about randomly losing all open tabs? What good are profiles to me, if one of most important of the secondary features of a browser is fundamentally broken and unreliable? I'm so pissed at Mozilla for their attitude (nothing new really, after the Ugly Bar update and those comments on reddit). If there was a real third browser on Windows I would have jumped ship, despite running FF since beta, both on PC and mobile. Just last month FF managed to kill all my open tabs a third time this year, and that's after no error, completely normal PC shutdown and boot next day. (ps: I know about scrounger)
Finally. I know that profiles have been supported for a long time, but about:profiles wasn't that user friendly and on macOS, profiles could also mess your dock icon, wouldn't open in the foreground, etc. It wasn't a good experience.
I think the new profiles will cause some confusion (at least initially) because these profiles are not listed on the old about:profiles page and the old profiles are not listed on the new UI.
Still, a good improvement for me. I no longer need to use the dev/nightly channels or 3rd party browsers based on FF just to have different bookmarks/settings/extensions. I'll need a way to add old profiles to the new UI though.
Firefox profiles have worked really well for me for years. I only have two complaints. (a) I like to configure my tools, and setting prefs via user.js has just never really worked - anything there is ignored. Probably it's just because of my particular setup, but I eventually gave up on it. (b) It would be super nice if profiles could [edit:] share common prefs. I certainly don't expect the developers to make it a feature, and it seems like fixing (a) and using symlinks would do it. But overall, yeah profiles work great.
The point of profiles is that they are completely isolated from each other, like separate installs, so I don't think starting to share preferences would be great.
So… what's changing? Profiles have been there for decade(s), is it just an alternative UI for folks who were unable to run firefox -p, or is there anything more substantial?
I've used profiles for a long time, but they have some annoyances.
One thing I really want is a comprehensive system for transferring/syncing only certain data between profiles. Profiles contain some data that is specific to, well, a particular browsing profile (like open tabs), but also data that is really more specific to me as a person (like font preferences). And then each extension can have its own settings or data that I may or may not want to transfer. I always have to look up old articles on Mozilla wiki and hope they're still accurate when I want to transfer certain data/settings between profiles while neither nuking everything nor copying everything. It would be great to have a sort of "data browser" that let me pick and choose certain data and then create a new profile from that.
The other disappointing thing to me is how they talk about profiles (and container tabs) as related to different usage patterns like work, home, etc. I mean, yeah, that's cool, but what I really want (certainly from container tabs, sometimes from profiles as well) is site isolation. I don't just want one profile for my work Gmail and another for my personal Gmail. I want one container tab for "everything Google", isolated from the rest, to minimize Google's tracking. But, like I said above, I still want all my personal preferences uniform across these profiles/containers.
It's annoying these get grouped in the taskbar unlike Chrome profiles. Surely the main use case is to have a "Firefox" and a "Firefox (Work)" pinned separately to the taskbar and have them act as two completely different environments?
Curious, I've been running 2 profiles at once for a while on MacOS and they have separate icons / app management. It's a Windows thing.
A way you might get around this (if acceptable) is to run one profile from a beta or developer version of Firefox which has a separate app path & icon and may result in the behaviour you want.
Been using profiles for some years now and they are great. I usually start with the default profile, then navigate to "about:profiles" to open all I need. Thanks to profiles, when my manjaro install broke, I migrated to NixOS and all my browsing sessions were ready to use the way I left them. Getting a dedicated, more integrated UI for managing profile will be great.
The one thing I'm missing is "incognito" profiles - e.g. spawn a temporary profile (without any identity attached) easily when I'm researching/navigating unusual sites and kill it once I'm done. Having multiple of these would be a great improvement over normal incognito windows (which share identities).
Here is my wishlist with respect to browser profiles and containers. While the chances that I'll get them are low, I hope it inspires people to think bigger a bit more. It may be too hard on the current generation of web engines, but perhaps the next generation can plan better in advance.
We're doing profiles and containers wrong. There are numerous other free software that demonstrate better examples. Why do we have two solutions when both are about isolation of data and execution? Browsers should take inspiration from how the Linux kernel does it using namespaces (and similar facilities in other kernels, eg: BSD jails). Divide isolation into different contexts like the different types of namespaces. There should be different contexts for isolating:
- cookies policies and sharing
- local data
- extension availability and sharing
- network access (direct internet, proxy, VPN, TOR, etc)
- password stores
- lifetime (permanent, limited-time, single-use)
- web api availability (like no-js contexts, no-drm contexts, etc)
- browser features
- browsing history
- sync accounts
- bookmarks
- tab configuration and state
- theming
- ad block profiles
- website URL affinity (eg: don't open FB here, open YT only here, etc)
- resource allocations (like CPU, RAM, etc)
- redirection profiles (like to invidious, xitter, etc)
Different profiles/containers can be created by mixing and matching these isolation contexts. For example you can have two different profiles that sharing password managers, but one for use with VPN and one without. All the current uses of profiles and containers can be met with this concept - including private browsing. You could even have TOR browsing in the same browser. While at it, you could even simulate resource allocations like cgroups (already mentioned in the list).
All these might make you wonder if it isn't too complicated for ordinary people to use. Solutions for that exist in the OS space too. We have tools like docker, lxc and even bubblewrap to wrap over these low level complexities and present a simpler UI. In the browser, you could have different higher level plugins to setup profiles easily in specific manner. We can click 'private browsing' that will isolate a profile in every context by default (and offer to share anything else as it seems fit to you). You could have plugins that maintain different profiles for each of your gmail/workspace accounts. You could have a plugin that allows you to temporarily share OIDC SSO across profiles (currently an annoying problems with browser containers.) And finally, the power users may be able to script these low-level isolation contexts just the way they want it.
The next is how pages are displayed. Today we have full-window pages with multiple pages supported by tabs. But those who use browsers for anything serious, besides watching cat videos or doom scrolling on social media know how frustrating it is to not be able to browse two pages side-by-side. Some browsers like Zen do support that workflow, while others can get it using extensions. But we could go much further. Dividing windows is a solved problem that's very well done in applications like Blender, Emacs, VSCode and other IDEs. You should be able to divide the window into any arbitrary layout, with each pane (a subdivision of a window) showing one of the open pages. Emacs shows this with the concept of windows (which are panes) and buffers. Blender gives the same facility. The browser must be able to hold hundreds of such layouts along with their page assignments. To make it easy for the common user, these layouts can be presented as tabs to the user. Web pages should also be presented as a single-pane layout for that page, so that the user is able to close it easily without having to think about the distinction between a page, a tab and a pane like the way you need to know on Emacs.
Each page can be a different process with its own profile assignment and browsing history tree. The GUI should be a separate ...
72 comments
[ 2.2 ms ] story [ 96.4 ms ] threadbut it's nice to see this finally get into Firefox because there are still a lot of folks who also want to maintain things like browser bookmarks, passwords etc in a separate profile. that's the only conceivable useful difference over Containers (which IMHO is slightly better than having to manage multiple profiles)
Actually, I have wanted better profile support for a while to segregate addons. There are plenty of addons that I want to use occasionally that require full data access. I generally do trust them, but even so, I keep these in a separate profile just in case. That is something that can't be done with containers.
At this time there are essentially three levels of indirection: "legacy" profiles -> new profiles -> containers, that is we can have multiple legacy profiles with each having multiple new profiles, each with an independent group of containers in them.
To choose a legacy profile, use the -P CLI option (with or without a profile name). Once firefox starts, you can switch between the new profiles stored inside the current legacy one using the new UI.
I mean, I've been using about:profiles for ages, but it would definitely be nice to have a bit more polish (e.g. every now and again I forget that a newly created profile is automatically promoted to default)
[edit] well seems I have to eat my words - there's a switch in about:config named "browser.profiles.enabled" that toggles a profiles menu item with some UI that apparently has existed for years. Nice!
The only weirdness is when you have multiple windows of different profiles opened at the same time and you open a link from a different application it may open it in the last used window which may not be the one you wanted. But then you can of course just drag and drop the tab from one window to the other.
No need to go to about:profiles. Use a separate shortcut with a -profile option added.
Both bookmarks that I'd just created and, just to clarify I'm not losing my mind, the full profile because I had to reinstall ublock origin.
That portability is a killer feature, but scriptability needs to be improved. The manual says you can do:
>`firefox --profile <path> Start with profile at <path>`
But that will not work as expected if you have more than one profile (which is the whole point). At present the only workable solution is to fiddle with a GUI thru `about:profiles` (or `firefox --ProfileManager`) in order to create the profiles and give them all-important UIDs. And then do:
>`firefox -P <UID>`
It may seem small, but I've found that this is a serious roadblock. I wish it could be fixed so as to make profiles entirely scriptable.
PS: to be clear, after the futzing with the GUI to create the profiles, my script works (well!) at opening windows in the right profile, this way: (1) Check if the given profile is already launched: `ps -eo args | grep -E ".(firefox).(-P $UID)" | grep -v grep > /dev/null` (2) Do `firefox -P $UID --new-instance $url` if it isn't, and `--new-tab` if it is. Inelegant, but very reliable.
FWIW, that's only true if you care about it having those IDs and being exposed to the graphical interface. If you don't, then you can just run `firefox --profile $HOME/.mozilla/firefox/whatever` and it works. I use a small shell script™ wrapper to run firefox this way and it's quite nice. Also helpful: If you run firefox like that, you can just point it at a new empty directory and it'll populate it as a profile, so it's easy to make new ones too.
>>`firefox --profile <path> Start with profile at <path>`
>But that will not work as expected if you have more than one profile (which is the whole point).
What won't work? Is that specific to Windows? This just works fine on my Linux box.
What is better depends on the use case. For me, containers are magic, because I can be logged into eg 2-3 different microsoft accounts simultaneously in the same window. With profiles or other browsers I would need to open a different window for each, which would be unnecessary and impractical. This is extremely convenient for me, containers is the feature I cannot currently browse without. Sometimes "separate your data sort-of-but-not-quite" may be exactly what you may need.
Otherwise it tends to just spawn a new window in the existing instance.
A single "Send to profile" option would be such a boon to productivity.
I had to click the other link https://support.mozilla.org/en-US/kb/profile-management to understand that this is all about simple UI improvements to make it easier to work with existing profiles.
The blog post is more than confusing, it is misleading. HN should link to the support page instead of the blog post.
Profiles WITH container tabs is pretty killer, dont' think Chrome has anything like this.
That whole "Profiles don't/aren't just $THIS; they're also $THAT" construction is classic LLM output. Then you've got the weird confusing inconsistencies like calling profiles a new feature when they aren't and there's also the rule of 3 ("avatars, colours, naming", "set boundaries, protect your information and make the internet a little calmer"). It all feels machine-written. Even the comparison of tidying your tabs to setting boundaries seems meaningless. It's just the sort of empty parallels AI loves to make.
It's a short article but I really had to power through it because with every sentence I kept thinking, this is not written by a human. If it is AI-generated slop, that'd explain why some parts of it doesn't make any sense.
Is pure marketing speak, which is also what I find a lot of LLM generated text sounds like
I think the new profiles will cause some confusion (at least initially) because these profiles are not listed on the old about:profiles page and the old profiles are not listed on the new UI.
Still, a good improvement for me. I no longer need to use the dev/nightly channels or 3rd party browsers based on FF just to have different bookmarks/settings/extensions. I'll need a way to add old profiles to the new UI though.
Disclaimer: I don't use macOS, but I'm sure it's similar to Linux in that regard. You'll need to change paths, of course.
One thing I really want is a comprehensive system for transferring/syncing only certain data between profiles. Profiles contain some data that is specific to, well, a particular browsing profile (like open tabs), but also data that is really more specific to me as a person (like font preferences). And then each extension can have its own settings or data that I may or may not want to transfer. I always have to look up old articles on Mozilla wiki and hope they're still accurate when I want to transfer certain data/settings between profiles while neither nuking everything nor copying everything. It would be great to have a sort of "data browser" that let me pick and choose certain data and then create a new profile from that.
The other disappointing thing to me is how they talk about profiles (and container tabs) as related to different usage patterns like work, home, etc. I mean, yeah, that's cool, but what I really want (certainly from container tabs, sometimes from profiles as well) is site isolation. I don't just want one profile for my work Gmail and another for my personal Gmail. I want one container tab for "everything Google", isolated from the rest, to minimize Google's tracking. But, like I said above, I still want all my personal preferences uniform across these profiles/containers.
You store browser preferences in it and firefox copies said preferences to prefs.js on startup (overwriting on conflict).
A way you might get around this (if acceptable) is to run one profile from a beta or developer version of Firefox which has a separate app path & icon and may result in the behaviour you want.
The one thing I'm missing is "incognito" profiles - e.g. spawn a temporary profile (without any identity attached) easily when I'm researching/navigating unusual sites and kill it once I'm done. Having multiple of these would be a great improvement over normal incognito windows (which share identities).
We're doing profiles and containers wrong. There are numerous other free software that demonstrate better examples. Why do we have two solutions when both are about isolation of data and execution? Browsers should take inspiration from how the Linux kernel does it using namespaces (and similar facilities in other kernels, eg: BSD jails). Divide isolation into different contexts like the different types of namespaces. There should be different contexts for isolating: - cookies policies and sharing - local data - extension availability and sharing - network access (direct internet, proxy, VPN, TOR, etc) - password stores - lifetime (permanent, limited-time, single-use) - web api availability (like no-js contexts, no-drm contexts, etc) - browser features - browsing history - sync accounts - bookmarks - tab configuration and state - theming - ad block profiles - website URL affinity (eg: don't open FB here, open YT only here, etc) - resource allocations (like CPU, RAM, etc) - redirection profiles (like to invidious, xitter, etc)
Different profiles/containers can be created by mixing and matching these isolation contexts. For example you can have two different profiles that sharing password managers, but one for use with VPN and one without. All the current uses of profiles and containers can be met with this concept - including private browsing. You could even have TOR browsing in the same browser. While at it, you could even simulate resource allocations like cgroups (already mentioned in the list).
All these might make you wonder if it isn't too complicated for ordinary people to use. Solutions for that exist in the OS space too. We have tools like docker, lxc and even bubblewrap to wrap over these low level complexities and present a simpler UI. In the browser, you could have different higher level plugins to setup profiles easily in specific manner. We can click 'private browsing' that will isolate a profile in every context by default (and offer to share anything else as it seems fit to you). You could have plugins that maintain different profiles for each of your gmail/workspace accounts. You could have a plugin that allows you to temporarily share OIDC SSO across profiles (currently an annoying problems with browser containers.) And finally, the power users may be able to script these low-level isolation contexts just the way they want it.
The next is how pages are displayed. Today we have full-window pages with multiple pages supported by tabs. But those who use browsers for anything serious, besides watching cat videos or doom scrolling on social media know how frustrating it is to not be able to browse two pages side-by-side. Some browsers like Zen do support that workflow, while others can get it using extensions. But we could go much further. Dividing windows is a solved problem that's very well done in applications like Blender, Emacs, VSCode and other IDEs. You should be able to divide the window into any arbitrary layout, with each pane (a subdivision of a window) showing one of the open pages. Emacs shows this with the concept of windows (which are panes) and buffers. Blender gives the same facility. The browser must be able to hold hundreds of such layouts along with their page assignments. To make it easy for the common user, these layouts can be presented as tabs to the user. Web pages should also be presented as a single-pane layout for that page, so that the user is able to close it easily without having to think about the distinction between a page, a tab and a pane like the way you need to know on Emacs.
Each page can be a different process with its own profile assignment and browsing history tree. The GUI should be a separate ...