chrome.types
描述
chrome.types
API 包含 Chrome 的类型声明。
# Chrome settings
ChromeSetting
原型提供了一组通用函数(get()
、set()
和 clear()
)以及用于 Chrome 浏览器设置的事件发布者 (onChange
)。proxy settings examples演示了如何使用这些功能。
# 范围和生命周期( Scope and life cycle)
Chrome 区分三种不同scopes的浏览器设置:
regular
在regular
scopes 中Settings的设置适用于常规浏览器窗口,如果不被覆盖,则由隐身窗口继承。这些设置存储到磁盘并保持原位,直到它们被管理扩展清除,或者管理扩展被禁用或卸载。
incognito_persistent
incognito_persistent
范围中Settings的设置仅适用于隐身窗口。对于这些,它们会覆盖regular
设置。这些设置存储到磁盘并保持原位,直到它们被管理扩展清除,或者管理扩展被禁用或卸载。
incognito_session_only
incognito_session_only
范围中Settings的设置仅适用于隐身窗口。对于这些,它们会覆盖regular
和incognito_persistent
设置。这些设置不会存储到磁盘,并会在最后一个隐身窗口关闭时清除。只有在至少打开一个隐身窗口时才能设置它们。
# 优先级(Precedence)
Chrome 管理不同层上的settings。以下列表按优先级递增的顺序描述了可能影响有效settings的层。
- 操作系统提供的系统设置
- 命令行参数
- 扩展提供的设置
- 策略(Policies)
正如列表所暗示的那样,策略可能会否决您对扩展程序指定的任何更改。您可以使用 get()
函数来确定您的扩展是否能够提供设置或是否会覆盖此设置。
如上所述,Chrome 允许对常规窗口和隐身窗口使用不同的设置。以下示例说明了该行为。假设没有策略覆盖设置,并且扩展程序可以设置常规窗口 (R) 的设置和隐身窗口 (I) 的设置。
- 如果仅设置了 (R),则这些设置对常规窗口和隐身窗口均有效。
- 如果仅设置了 (I),则这些设置仅对隐身窗口有效。常规窗口使用由较低层确定的设置(命令行选项和系统设置)。
- 如果 (R) 和 (I) 都被设置,则相应的设置将用于常规和隐身窗口。
如果两个或多个扩展想要将相同的设置设置为不同的值,则最近安装的扩展优先于其他扩展。如果最近安装的扩展只设置 (I),则常规窗口的设置可以由以前安装的扩展定义。
设置的有效值是考虑优先规则的结果。它由 Chrome 使用。
概括
Types
Types
ChromeSetting
允许访问 Chrome 浏览器设置的界面。有关示例,请参阅accessibilityFeatures。
PROPERTIES
onChange
event
设置更改后触发。
onChange.addListener function如下所示:
(callback: function) => {...}
callback
function
回调参数如下所示:
(details: object) => void
- details
object
incognitoSpecific
boolean optional
更改的值是否特定于隐身会话。仅当用户在隐身模式下启用扩展程序时,此属性才会出现。
levelOfControl
设置的控制级别。
value
T
更改后的设置值。
clear
function
Promise
清除设置,恢复任何默认值。
clear function如下所示:
(details: object, callback?: function) => {...}
details
object
要清除哪个设置。
scope
ChromeSettingScope optional
在哪里清除设置(默认:regular
)。
callback
function optional
callback
参数如下所示:
() => void
returns
Promise<void>
Pending
这仅在未指定callback
参数时返回 Promise
,并且使用 MV3+。 Promise
中的类型与callback
的第一个参数相同。
get
function
Promise
获取设置的值。
get
函数如下所示:
(details: object, callback?: function) => {...}
details
object
当前有效值的详细信息。
incognitoSpecific
boolean optional
有效值是否特定于隐身会话。仅当
get()
的details
参数中的incognito
属性为true
时,才会出现此属性。levelOfControl
设置的控制级别。
value
T
设置的值。
returns
Promise<object>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
set
function
Promise
设置 setting 的值。
set 函数如下所示:
(details: object, callback?: function) => {...}
details
object
要更改哪个设置。
scope
ChromeSettingScope optional
在哪里设置setting(默认:regular)。
value
T
Setting的值。请注意,每个设置都有一个特定的值类型,它与setting一起描述。扩展不应设置不同类型的值。
callback
function optional
callback
参数如下所示:() => void
returns
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
ChromeSettingScope
Chrome 44+
ChromeSetting 的scope。之一:
regular
:常规配置文件的设置(如果没有在其他地方覆盖,则由隐身配置文件继承),regular\_only
:仅用于常规配置文件的设置(不由隐身配置文件继承),incognito\_persistent
:浏览器重启后仍然存在的隐身配置文件的设置(覆盖常规首选项),incognito\_session\_only
:隐身配置文件的设置,只能在隐身会话期间设置,并在隐身会话结束时删除(覆盖常规和 incognito_persistent 首选项)。
TYPE
"regular", "regular_only", "incognito_persistent", or "incognito_session_only"
LevelOfControl
Chrome 44+
之一:
not\_controllable
:不能被任何扩展控制controlled\_by\_other\_extensions
:由具有更高优先级的扩展控制controllable\_by\_this\_extension
:可以由这个扩展控制controlled\_by\_this\_extension
:由这个扩展控制
TYPE
"not_controllable", "controlled_by_other_extensions", "controllable_by_this_extension", or "controlled_by_this_extension"
By.一粒技术服务.