The user data directory contains profile data such as history, bookmarks, and cookies, as well as other per-installation local state.
Each profile is a subdirectory (often Default
) within the user data directory.
To determine the user data directory for a running Chrome instance:
chrome://version
Profile Path
field. This gives the path to the profile directory.Example (Windows):
C:\Users\Alice\AppData\Local\Google\Chrome\User Data\Default
C:\Users\Alice\AppData\Local\Google\Chrome\User Data
The default location of the user data directory is computed by chrome::GetDefaultUserDataDirectory
.
Generally it varies by
is_chrome_branded
in GN args), andThe default location is in the local app data folder:
%LOCALAPPDATA%\Google\Chrome\User Data
%LOCALAPPDATA%\Google\Chrome Beta\User Data
%LOCALAPPDATA%\Google\Chrome SxS\User Data
%LOCALAPPDATA%\Google\Chrome for Testing\User Data
%LOCALAPPDATA%\Chromium\User Data
(The canary channel suffix is determined using InstallConstants::install_suffix
.)
The default location is in the Application Support
folder:
~/Library/Application Support/Google/Chrome
~/Library/Application Support/Google/Chrome Beta
~/Library/Application Support/Google/Chrome Canary
~/Library/Application Support/Google/Chrome for Testing
~/Library/Application Support/Chromium
(The canary channel suffix is determined using the CrProductDirName
key in the browser app's Info.plist
.)
The default location is in ~/.config
:
~/.config/google-chrome
~/.config/google-chrome-beta
~/.config/google-chrome-unstable
~/.config/google-chrome-for-testing
~/.config/chromium
(The beta and dev channel suffixes are determined from $CHROME_VERSION_EXTRA
, which is passed by the launch wrapper script.)
The ~/.config
portion of the default location can be overridden by $CHROME_CONFIG_HOME
(since M61) or by $XDG_CONFIG_HOME
.
Note that $XDG_CONFIG_HOME
affects all applications conforming to the XDG Base Directory Spec, while $CHROME_CONFIG_HOME
is specific to Chrome and Chromium.
The default location is: /home/chronos
The default location comes from Context.getDir and is specific to the app.
Example: /data/user/0/com.android.chrome/app_chrome
The default location is inside the application support directory in the app sandbox.
Library/Application Support/Google/Chrome
Library/Application Support/Chromium
On most platforms, the user data directory can be overridden by passing the --user-data-dir
command-line flag to the Chrome binary.
The override happens in chrome/app/chrome_main_delegate.cc
. Platforms not building with the file may not have implemented the override. Overriding the user data directory via the command line is not supported on iOS.
Example:
chrome.exe --user-data-dir=c:\foo
google-chrome --user-data-dir=/path/to/foo
On Linux, the user data directory can also be overridden with the $CHROME_USER_DATA_DIR
environment variable.
The --user-data-dir
flag takes precedence if both are present.
Chrome Remote Desktop (CRD) used to set $CHROME_USER_DATA_DIR
or $CHROME_CONFIG_HOME
on the virtual session on a Linux host, since a single Chrome instance cannot show windows on multiple X displays, and two running Chrome instances cannot share the same user data directory. However, with the obsolescence of dbus-x11
, most modern Linux distros have lost the ability to simultaneously run multiple graphical sessions for the same user without running into difficult-to-trace dbus cross talk issues, and Chrome can only be run on a single X display per user in reality. Therefore, CRD no longer sets these environment variables for new installations after CRD host M105.
The CRD host will continue to set these environment variables if either chrome-config/
or chrome-profile/
exists in ~/.config/chrome-remote-desktop/
. If you want to use the local Chrome profile in CRD sessions, quit Chrome and delete these folders from ~/.config/chrome-remote-desktop/
, then reboot the host device.
On Mac OS X, you can create an application that runs Chrome with a custom --user-data-dir
:
Open Applications > Utilities > Script Editor.
Enter:
set chrome to "\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\"" set userdatadir to "\"$HOME/Library/Application Support/Google/Chrome Alt\"" do shell script chrome & " --user-data-dir=" & userdatadir & " > /dev/null 2>&1 &"
Modify as needed for your installation path, Chrome versus Chromium, and desired user data directory.
Save the script in your Applications directory with the file format “Application”.
Close the Script Editor, find your newly created application, and run it. This opens a Chrome instance pointing to your new profile.
If you want, you can give this application the same icon as Chrome:
On Windows and ChromeOS, the user cache dir is the same as the profile dir. (The profile dir is inside the user data dir.)
On Mac OS X and iOS, the user cache dir is derived from the profile dir as follows:
Library/Application Support
is an ancestor of the profile dir, the user cache dir is Library/Caches
plus the relative path from Application Support
to the profile dir.Example (Mac OS X):
~/Library/Application Support/Google/Chrome
~/Library/Application Support/Google/Chrome/Default
~/Library/Caches/Google/Chrome/Default
On Linux, the user cache dir is derived from the profile dir as follows:
~/.config
, unless overridden by $XDG_CONFIG_HOME
. (This step ignores $CHROME_CONFIG_HOME
.)~/.cache
, unless overridden by $XDG_CACHE_HOME
.Example (Linux):
~/.config/google-chrome
~/.config/google-chrome/Default
~/.cache/google-chrome/Default
On Android, the user cache directory comes from Context.getCacheDir.