C++ Prefs
Prefs is a system for storing configuration data keyed to the user session (i.e.
the sorts of data that would be stored in config files in most other software
projects). Although originally designed for storing Chrome's user preferences,
it now sees use more generally to store all sorts of feature data. It is capable
of representing any JSON data structure (strings, numbers, booleans, lists,
mappings -- see
base::Value
).
Prefs are not meant to store large collections of data, which could result in a large memory overhead. See more here.
All prefs need to be registered by a PrefRegistry, which is often triggered by BrowserContextKeyedServiceFactory::RegisterProfilePrefs().
For prefs to be recognized in the ChromeOS UI, the pref name must be added to
GetAllowlistedKeys()
in
prefs_util.cc
Active prefs can be viewed on Chromebooks by entering chrome://prefs-internals
and chrome://local-state
into the Chrome tab search bar to view active Profile
Prefs and Local State Prefs, respectively.
- Note that not all Local State prefs will be shown on Chromebooks as some contain PII: to view these removed prefs on a test Chromebook, deploy code with the pref removing logic commented out.
To learn more about using Prefs to write code, see go/chromium-cookbook-policy-prefs. If you'd like to understand prefs more deeply, read "User Sessions".