browser.types

说明

chrome.types API 包含 Chrome 的类型声明。

Chrome 浏览器设置

ChromeSetting 类型提供了一组通用函数(get()、set() 和 clear())以及一个事件发布程序 (onChange),用于 Chrome 浏览器的设置。代理设置示例演示了这些函数的预期使用方式。

范围和生命周期

Chrome 区分了三种不同范围的浏览器设置:

regular
在 regular 范围内设定的设置会应用于常规浏览器窗口,并由无痕式窗口继承(如果未被覆盖)。这些设置会存储到磁盘中,并会一直保留,直到被控制扩展程序清除,或者控制扩展程序被停用或卸载。
incognito_persistent
在 incognito_persistent 范围内设置的设置仅适用于无痕式窗口。对于这些设置,它们会替换 regular 设置。这些设置会存储到磁盘中,并会一直保留,直到被控制扩展程序清除,或者控制扩展程序被停用或卸载。
incognito_session_only
在 incognito_session_only 范围内设置的设置仅适用于无痕式窗口。对于这些设置,它们会替换 regular 和 incognito_persistent 设置。这些设置不会存储到磁盘,并且会在最后一个无痕式窗口关闭时清除。只有在至少打开一个无痕式窗口时,才能设置这些选项。

优先级

Chrome 会在不同层级管理设置。以下列表按优先级递增的顺序介绍了可能影响有效设置的层。

  1. 操作系统提供的系统设置
  2. 命令行参数
  3. 由扩展程序提供的设置
  4. 政策

如列表所示,政策可能会覆盖您通过扩展程序指定的任何更改。您可以使用 get() 函数来确定您的扩展程序是否能够提供设置,或者此设置是否会被覆盖。

如前所述,Chrome 允许为常规窗口和无痕式窗口使用不同的设置。以下示例说明了此行为。假设没有政策会覆盖这些设置,并且扩展程序可以为常规窗口 (R) 和无痕式窗口 (I) 进行设置。

  • 如果仅设置了 (R),则这些设置对常规窗口和无痕式窗口均有效。
  • 如果仅设置了 (I),则这些设置仅对无痕式窗口有效。常规窗口使用由较低层(命令行选项和系统设置)确定的设置。
  • 如果同时设置了 (R) 和 (I),则系统会分别针对常规窗口和无痕式窗口使用相应的设置。

如果两个或更多扩展程序想要将同一设置设为不同的值,则最近安装的扩展程序优先于其他扩展程序。如果最近安装的扩展程序仅设置 (I),则常规窗口的设置可由之前安装的扩展程序定义。

设置的有效值是考虑优先级规则后得出的值。Chrome 会使用此文件。

类型

ChromeSetting

一个允许访问 Chrome 浏览器设置的界面。如需查看示例,请参阅 accessibilityFeatures。

属性

  • onChange

    Event<functionvoidvoid>

    在设置更改后触发。

    onChange.addListener 函数如下所示:

    (callback: function) => {...}

    • callback

      函数

      callback 参数如下所示:

      (details: object) => void

      • 详细信息

        对象

        • incognitoSpecific

          布尔值 (可选)

          更改的值是否特定于无痕式会话。 仅当用户在无痕模式下启用了扩展程序时,此属性才会存在。

        • levelOfControl

          设置的控制级别。

        • 值

          T

          更改后的设置值。

  • 清除

    void

    清除设置,恢复所有默认值。

    clear 函数如下所示:

    (details: object) => {...}

    • 详细信息

      对象

      要清除哪项设置。

    • 返回

      承诺<void>

      Chrome 96 及更高版本 browser.*(自 Chrome 148 起)

      在清除操作完成时调用。

  • get

    void

    获取设置的值。

    get 函数如下所示:

    (details: object) => {...}

    • 详细信息

      对象

      要考虑哪项设置。

      • 无痕模式

        布尔值 (可选)

        是否返回适用于无痕式会话的值(默认值为 false)。

    • 返回

      Promise<object>

      Chrome 96 及更高版本 browser.*(自 Chrome 148 起)
  • set

    void

    设置某项设置的值。

    set 函数如下所示:

    (details: object) => {...}

    • 详细信息

      对象

      要更改哪项设置。

      • 范围

        设置的范围(默认:regular)。

      • 值

        T

        设置的值。 请注意,每项设置都有特定的值类型,这些类型会与设置一起说明。扩展程序不应设置其他类型的值。

    • 返回

      承诺<void>

      Chrome 96 及更高版本 browser.*(自 Chrome 148 起)

      在设置操作完成时调用。

ChromeSettingScope

Chrome 44 及更高版本 browser.*(自 Chrome 148 起)

ChromeSetting 的范围。以下权限之一:

  • regular:常规个人资料的设置(如果未在其他位置被覆盖,则由无痕式个人资料继承),
  • regular\_only:仅适用于常规个人资料的设置(无痕式个人资料不会沿用),
  • incognito\_persistent:无痕模式个人资料的设置,在浏览器重启后仍会保留(会覆盖常规偏好设置),
  • incognito\_session\_only:无痕式个人资料的设置,只能在无痕式会话期间设置,并在无痕式会话结束时删除(会覆盖常规和 incognito_persistent 偏好设置)。

枚举

"regular"

"regular_only"

"incognito_persistent"

"incognito_session_only"

LevelOfControl

Chrome 44 及更高版本 browser.*(自 Chrome 148 起)

以下权限之一:

  • 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"