Preferences
For information on how to use experimental APIs, see the chrome.experimental.* APIs page.
Preferences
The chrome.preferences module contains a prototype for giving other
modules access to manage preferences stored by Chrome. This prototype is used,
for example, for chrome.proxy.settings.
Overview
The preferences API provides a common set of functions
(get(), set(), and clear()) as
well as an event publisher (onChange) for various
preferences in Chrome. The proxy settings
examples demonstrate how these functions are intended to be used.
Scope and life cycle of preferences
Chrome distinguishes between three different scopes of preferences:
regular
- Preferences set in the
regular scope apply to regular
browser windows and are inherited by the incognito windows if they are not
overwritten. These preferences are stored to disk and remain in place until
they are cleared by the governing extension, or the governing extension is
disabled or uninstalled.
incognito_persistent
- Preferences set in the
incognito_persistent scope apply only
to incognito windows. For these, they override regular
preferences. These preferences are stored to disk and remain in place until
they are cleared by the governing extension, or the governing extension is
disabled or uninstalled.
incognito_session_only
- Preferences set in the
incognito_session_only scope apply only
to incognito windows. For these, they override regular and
incognito_session_only preferences. These preferences are not
stored to disk and are cleared when the last incognito window is closed. They
can only be set when at least one incognito window is open.
Precedence
Chrome manages preferences on different layers. The following list describes the
layers that may influence the effective preferences, in increasing order of
precedence.
- System preferences provided by the operating system
- Command-line parameters
- Preferences set by extensions
- Policies
As the list implies, policies might overrule any changes that you specify with
your extension. You can use the get() function to determine whether
your extension is capable of setting a preference or whether this setting would
be overridden.
As discussed above, Chrome allows using different preferences for regular
windows and incognito windows. The following example illustrates the behavior.
Assume that no policy overrides the preferences and that an extension can set
preferences for regular windows (R) and preferences for incognito windows
(I).
- If only (R) is set, these preferences are effective for both
regular and incognito windows.
- If only (I) is set, these preferences are effective for only
incognito windows. Regular windows use the preferences determined by the lower
layers (command-line options and system settings).
- If both (R) and (I) are set, the respective preferences are
used for regular and incognito windows.
If two or more extensions want to set the same preference to different values,
the extension installed most recently takes precedence over the other
extensions. If the most recently installed extension sets only (I), the
preference of regular windows can be defined by previously installed extensions.
The effective preference value is the setting that results from
considering the preference rules. It is used by Chrome.
API reference: chrome.preferences
Properties
getLastError
chrome.extensionlastError
Methods
method name
void
chrome.module.methodName(,
)
Undocumented.
A description from the json schema def of the function goes here.
Parameters
Returns
Callback function
The callback parameter should specify a function
that looks like this:
If you specify the callback parameter, it should
specify a function that looks like this:
function(Type param1, Type param2) {...};
This function was added in version .
If you require this function, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
Events
event name
chrome.bookmarksonEvent.addListener(function(Type param1, Type param2) {...}, Type opt_param1, Type opt_param2));
Undocumented.
A description from the json schema def of the event goes here.
Extra parameters to addListener
Listener returns
Types
Preference
paramName
(
optional
enumerated
Type
array of
object
)
Undocumented.
An object which allows access to a preference.
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
Methods of Preference
clear
void
preference.clear(, object
details, function
callback)
Undocumented.
Clears the setting in the user preferences. This way default settings can become effective again.
Parameters
-
details
(
optional
enumerated
Type
array of
object
)
-
Undocumented.
- What preference to clear.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
scope
(
optional
enumerated
Type
array of
string
["regular", "incognito_persistent", "incognito_session_only"]
)
-
Undocumented.
- Where to set the preference (default: regular). One of
regular: preference for regular profile (which is inherited by the incognito profile if not overridden elsewhere),
incognito_persistent: preference for incognito profile that survives browser restarts (overrides regular preferences),
incognito_session_only: preference for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular and incognito_persistent preferences).
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
-
-
-
callback
(
optional
enumerated
Type
array of
function
)
-
Undocumented.
- Called after the preference has been cleared.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
Returns
Callback function
The callback parameter should specify a function
that looks like this:
If you specify the callback parameter, it should
specify a function that looks like this:
function() {...};
This function was added in version .
If you require this function, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
get
void
preference.get(, object
details, function
callback)
Undocumented.
Get the setting from the user preferences.
Parameters
-
details
(
optional
enumerated
Type
array of
object
)
-
Undocumented.
- What setting to return.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
incognito
(
optional
enumerated
Type
array of
boolean
)
-
Undocumented.
- Whether to return the setting that applies to the incognito session (default false).
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
-
-
-
callback
(
optional
enumerated
Type
array of
function
)
-
Undocumented.
-
Description of this parameter from the json schema.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
Returns
Callback function
The callback parameter should specify a function
that looks like this:
If you specify the callback parameter, it should
specify a function that looks like this:
function(object details) {...};
-
details
(
optional
enumerated
Type
array of
object
)
-
Undocumented.
- Details of the currently effective preference value.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
value
(
optional
enumerated
Type
array of
any
)
-
Undocumented.
- The value of the preference.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
levelOfControl
(
optional
enumerated
Type
array of
string
["not_controllable", "controlled_by_other_extensions", "controllable_by_this_extension", "controlled_by_this_extension"]
)
-
Undocumented.
- One of
not_controllable: cannot be controlled by any extension
controlled_by_other_extensions: controlled by extensions with higher precedence
controllable_by_this_extension: can be controlled by this extension
controlled_by_this_extension: controlled by this extension
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
incognitoSpecific
(
optional
enumerated
Type
array of
boolean
)
-
Undocumented.
- Whether the effective value is specific to the incognito session.
This property will only be present if the incognito property in the details parameter of get() was true.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
-
-
This function was added in version .
If you require this function, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
set
void
preference.set(, object
details, function
callback)
Undocumented.
Set the setting in the user preferences
Parameters
-
details
(
optional
enumerated
Type
array of
object
)
-
Undocumented.
- What setting to change.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
value
(
optional
enumerated
Type
array of
any
)
-
Undocumented.
- The value of the preference.
Note that every preference has a specific value type, which is described together with the preference. An extension should not set a preference value of a different type.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
scope
(
optional
enumerated
Type
array of
string
["regular", "incognito_persistent", "incognito_session_only"]
)
-
Undocumented.
- Where to set the preference (default: regular). One of
regular: preference for regular profile (which is inherited by the incognito profile if not overridden elsewhere),
incognito_persistent: preference for incognito profile that survives browser restarts (overrides regular preferences),
incognito_session_only: preference for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular and incognito_persistent preferences).
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
-
-
-
callback
(
optional
enumerated
Type
array of
function
)
-
Undocumented.
- Called after the preference has been set.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
Returns
Callback function
The callback parameter should specify a function
that looks like this:
If you specify the callback parameter, it should
specify a function that looks like this:
function() {...};
This function was added in version .
If you require this function, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
Events of Preference
onChange
preference.onChange.addListener(function(object details) {...}));
Undocumented.
Fired when the value of the preference changes.
Listener parameters
-
details
(
optional
enumerated
Type
array of
object
)
-
Undocumented.
-
Description of this parameter from the json schema.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
value
(
optional
enumerated
Type
array of
any
)
-
Undocumented.
- The value of the preference.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
levelOfControl
(
optional
enumerated
Type
array of
string
["not_controllable", "controlled_by_other_extensions", "controllable_by_this_extension", "controlled_by_this_extension"]
)
-
Undocumented.
- One of
not_controllable: cannot be controlled by any extension
controlled_by_other_extensions: controlled by extensions with higher precedence
controllable_by_this_extension: can be controlled by this extension
controlled_by_this_extension: controlled by this extension
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
incognitoSpecific
(
optional
enumerated
Type
array of
boolean
)
-
Undocumented.
- Whether the value that has changed is specific to the incognito session.
This property will only be present if the user has enabled the extension in incognito mode.
-
This parameter was added in version
.
You must omit this parameter in earlier versions,
and you may omit it in any version. If you require this
parameter, the manifest key
minimum_chrome_version
can ensure that your extension won't be run in an earlier browser version.
-
-
-
-
-
-
-
Extra parameters to addListener
Listener returns