说明
chrome.types
API 包含 Chrome 的类型声明。
Chrome 浏览器设置
ChromeSetting
类型提供了一组常用的函数(get()
、set()
和 clear()
)
以及 Chrome 浏览器设置的事件发布者 (onChange
)。代理设置
示例演示了这些函数的预期用途。
范围和生命周期
Chrome 可区分浏览器设置的三种不同范围:
regular
- 在“
regular
”范围内设定的设置会应用于常规浏览器窗口,并且会被无痕模式继承 (如果它们未被覆盖)。这些设置会存储到磁盘中并保持有效,直到 或被管理扩展程序清除,或者管理扩展程序已被停用或卸载。 incognito_persistent
- 在
incognito_persistent
范围内设定的设置仅适用于无痕式窗口。对于这类广告 覆盖regular
设置。这些设置会存储到磁盘中并保持有效状态,直到 或者被管理扩展程序清除,或者管理扩展程序已被停用或卸载。 incognito_session_only
- 在
incognito_session_only
范围内设定的设置仅适用于无痕式窗口。对于这类广告 覆盖regular
和incognito_persistent
设置。这些设置不会存储到磁盘中, 会在最后一个无痕式窗口关闭时清除。仅当至少包含一个 无痕式窗口已打开。
优先级
Chrome 管理不同图层上的设置。以下列表介绍了可 影响有效设置(按优先顺序由高到低)。
- 操作系统提供的系统设置
- 命令行参数
- 扩展程序提供的设置
- 政策
正如该列表所示,政策可能会优先于您通过扩展程序指定的任何更改。您
可以使用 get()
函数来确定您的扩展程序是否能够提供设置
以及此设置是否会被覆盖
如前所述,Chrome 允许对常规窗口和无痕模式使用不同的设置 窗口。以下示例说明了这种行为。假设没有任何政策覆盖 以及扩展程序可针对常规窗口 (R) 和 无痕式窗口 (I)。
- 如果仅设置了 (R),则这些设置对常规窗口和无痕式窗口均有效。
- 如果仅设置了 (I),这些设置仅对无痕式窗口有效。常规窗口 使用由较低层确定的设置(命令行选项和系统设置)。
- 如果同时设置了 (R) 和 (I),则会将相应的设置用于常规和无痕模式 窗口。
如果两个或更多扩展程序想要将同一设置设为不同的值,则已安装该扩展程序 最近的一条附加信息优先于其他附加信息。如果最近安装的扩展程序 仅设置 (I),常规窗口的设置可由之前安装的窗口定义 。
设置的有效值是指考虑优先规则而产生的值。它 由 Chrome 使用。
类型
ChromeSetting
允许访问 Chrome 浏览器设置的界面。相关示例请参见 accessibilityFeatures
。
属性
-
onChange
事件<functionvoidvoid>
在设置更改后触发。
onChange.addListener
函数如下所示:(callback: function) => {...}
-
callback
函数
callback
参数如下所示:(details: object) => void
-
详细信息
对象
-
incognitoSpecific
布尔值(可选)
更改的值是否特定于无痕会话。 仅当用户在无痕模式下启用扩展程序时,此属性才会显示。
-
levelOfControl
设置的控制级别。
-
值
T
更改后的设置值。
-
-
-
-
清除
void
<ph type="x-smartling-placeholder"></ph> 承诺清除设置,恢复任何默认值。
clear
函数如下所示:(details: object, callback?: function) => {...}
-
详细信息
对象
要清除的设置。
-
范围
清除设置的位置(默认值:常规)。
-
-
callback
函数(可选)
callback
参数如下所示:() => void
-
返回
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
-
-
get
void
<ph type="x-smartling-placeholder"></ph> 承诺获取设置的值。
get
函数如下所示:(details: object, callback?: function) => {...}
-
详细信息
对象
要考虑的设置。
-
无痕模式
布尔值(可选)
是否返回适用于无痕模式会话的值(默认值为 false)。
-
-
callback
函数(可选)
callback
参数如下所示:(details: object) => void
-
详细信息
对象
当前有效值的详细信息。
-
incognitoSpecific
布尔值(可选)
有效值是否特定于无痕模式会话。 仅当
get()
的details
参数中的incognito
属性为 true 时,此属性才会显示。 -
levelOfControl
设置的控制级别。
-
值
T
设置的值。
-
-
-
返回
Promise<object>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
-
-
set
void
<ph type="x-smartling-placeholder"></ph> 承诺设定设置的值。
set
函数如下所示:(details: object, callback?: function) => {...}
-
详细信息
对象
要更改哪项设置。
-
范围
在何处设置该设置(默认值:常规)。
-
值
T
设置的值。 请注意,每项设置都有特定的值类型,我们将与该设置一起描述该值类型。扩展程序不得设置其他类型的值。
-
-
callback
函数(可选)
callback
参数如下所示:() => void
-
返回
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
-
ChromeSettingScope
ChromeSetting 的范围。以下权限之一:
regular
:常规个人资料的设置(如果未在其他地方替换,则无痕个人资料会继承此设置)regular\_only
:仅适用于常规个人资料(而非无痕模式个人资料)的设置,incognito\_persistent
:此设置用于在浏览器重启后仍继续有效的无痕式个人资料(覆盖常规偏好设置)。incognito\_session\_only
:为无痕模式个人资料指定的设置,只能在无痕式会话期间设置,并且在无痕式会话结束时被删除(覆盖常规和 apigee_persistent 偏好设置)。
枚举
"标准"
"regular_only"
“apigee_persistent”
“audience_session_only”
LevelOfControl
以下权限之一:
not\_controllable
:无法由任何扩展程序控制controlled\_by\_other\_extensions
:由优先级较高的扩展程序控制controllable\_by\_this\_extension
:可由此扩展程序控制controlled\_by\_this\_extension
:由此扩展程序控制
枚举
"not_controllable"
"controlled_by_other_extensions"
"controllable_by_this_extension"
"controlled_by_this_extension"