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的设置仅适用于隐身窗口。对于这些,它们会覆盖regularincognito_persistent 设置。这些设置不会存储到磁盘,并会在最后一个隐身窗口关闭时清除。只有在至少打开一个隐身窗口时才能设置它们。

# 优先级(Precedence)

Chrome 管理不同层上的settings。以下列表按优先级递增的顺序描述了可能影响有效settings的层。

  1. 操作系统提供的系统设置
  2. 命令行参数
  3. 扩展提供的设置
  4. 策略(Policies)

正如列表所暗示的那样,策略可能会否决您对扩展程序指定的任何更改。您可以使用 get() 函数来确定您的扩展是否能够提供设置或是否会覆盖此设置。

如上所述,Chrome 允许对常规窗口和隐身窗口使用不同的设置。以下示例说明了该行为。假设没有策略覆盖设置,并且扩展程序可以设置常规窗口 (R) 的设置和隐身窗口 (I) 的设置。

  • 如果仅设置了 (R),则这些设置对常规窗口和隐身窗口均有效。
  • 如果仅设置了 (I),则这些设置仅对隐身窗口有效。常规窗口使用由较低层确定的设置(命令行选项和系统设置)。
  • 如果 (R) 和 (I) 都被设置,则相应的设置将用于常规和隐身窗口。

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

设置的有效值是考虑优先规则的结果。它由 Chrome 使用。

概括

Types

ChromeSetting

ChromeSettingScope

LevelOfControl

Types

ChromeSetting

允许访问 Chrome 浏览器设置的界面。有关示例,请参阅accessibilityFeatures

PROPERTIES


onChange

​ event

设置更改后触发。

onChange.addListener function如下所示:

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

callback

​ function

回调参数如下所示:

(details: object) => void
  • details

​ object


​ incognitoSpecific

​ boolean optional

​ 更改的值是否特定于隐身会话。仅当用户在隐身模式下启用扩展程序时,此属性才会出现。


​ levelOfControl

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

      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.一粒技术服务.

results matching ""

    No results matching ""