tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 05697b6a50a35ac152373f762d93b045d4d5a9e0
parent 2b39f4b459162fc01e40c8e0ed4bfea7108c4ab1
Author: Gijs Kruitbosch <gijskruitbosch@gmail.com>
Date:   Fri,  5 Dec 2025 14:01:19 +0000

Bug 2004020 - document some more profiles information in source docs, r=profiles-reviewers,mossop

Differential Revision: https://phabricator.services.mozilla.com/D275060

Diffstat:
Mtoolkit/profile/docs/index.md | 30++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/toolkit/profile/docs/index.md b/toolkit/profile/docs/index.md @@ -71,7 +71,7 @@ it is needed. ## Profiles Datastore Service -The [`ProfilesDatastoreService`](https://searchfox.org/mozilla-central/rev/fccab99f5b400b33b9ad16e7f066a5020119fbdc/browser/components/profiles/ProfilesDatastoreService.sys.mjs) +The {searchfox}`ProfilesDataStoreService.sys.mjs <toolkit/profile/ProfilesDatastoreService.sys.mjs>` manages a unique SQLite database for each `storeID`. This means that when there are a group of profiles using the same `storeID` then they all use the same SQLite database allowing for persisting data that can be used by every profile in the group. It provides direct access to a SQLite @@ -79,7 +79,11 @@ connection and a mechanism for notifying running instances that are using the sa This `storeID` is used to construct a filename for the database file. For development and temporary profiles with no associated `nsIToolkitProfile` the database is stored in the profile root -directory. Otherwise this file is stored in a directory shared by all profiles. +directory. Otherwise this file is stored in the `Profile Groups` directory shared by all profiles: + +* Windows: `%APPDATA%\Mozilla\Firefox\Profile Groups` +* Linux: `~/.mozilla/firefox/Profile Groups` +* macOS: `~/Library/Application Support/Firefox/Profile Groups` The database is created the first time a component requests a connection to it. @@ -116,15 +120,17 @@ Service's selection UI is displayed on startup. ## Selectable Profile Service -The Selectable Profile Service manages a list of profiles in the Profiles Datastore Service. These -profiles all share a `storeID` and are linked by a single `nsIToolkitProfile`. When new profiles are +The Selectable Profile Service manages a list of profiles in the [Profiles Datastore Service](#profiles-datastore-service). These +profiles all share a `storeID` and are linked by a single `nsIToolkitProfile`. When new selectable profiles are created this service is responsible for initializing the new profile with the same `storeID` so that relevant data is shared across all profiles in the group. The `storeID` is stored in the -`nsIToolkitProfile` section in `profiles.ini` and the `Path` property is used to represent the most -recently used profile in the group. This will be changed frequently as the user switches between -running instances. - -Users can create additional Selectable Profiles using the Profiles menu and menuitems (see -https://support.mozilla.org/en-US/kb/profile-management for details). The about:newprofile, -about:editprofile, about:deleteprofile, and about:profilemanager pages are used to manage Selectable -Profiles. +`nsIToolkitProfile` section in `profiles.ini`, and in the `toolkit.profiles.storeID` preference. +Each selectable profile will get its own profile root and profile local directories as usual. +The `nsIToolkitProfile`'s entry in `profiles.ini` will have its `Path` property updated to represent the most +recently used profile in the group. When the user has multiple profiles in a group open simultaneously, +these updates can happen frequently: any time the user switches between running instances. + +Users can create additional Selectable Profiles [using the Profiles menu and +menuitems](https://support.mozilla.org/kb/profile-management). The `about:newprofile`, +`about:editprofile`, `about:deleteprofile`, and `about:profilemanager` pages are used to manage +Selectable Profiles.