chrome.privacy

说明

使用 chrome.privacy API 来控制 Chrome 中可能会影响用户隐私的功能的使用情况。此 API 依赖于 ChromeSetting 类型的 API 原型来获取和设置 Chrome 的配置。

权限

privacy

清单

您必须在扩展程序的清单中声明“隐私权”权限,才能使用该 API。例如:

{
  "name": "My extension",
  ...
  "permissions": [
    "privacy"
  ],
  ...
}

用法

读取 Chrome 设置的当前值非常简单。您需要先找到感兴趣的属性,然后对该对象调用 get(),以便检索其当前值和扩展程序的控制级别。例如,如需确定 Chrome 的自动填充功能是否已启用,您可以编写以下代码:

chrome.privacy.services.autofillEnabled.get({}, function(details) {
  if (details.value) {
    console.log('Autofill is on!');
  } else {
    console.log('Autofill is off!');
  }
});

更改设置的值稍微复杂一些,因为您必须先验证扩展程序是否可以控制该设置。如果您的扩展程序切换的设置要么通过企业政策锁定为特定值(levelOfControl 将设置为“not_controllable”),要么由其他扩展程序控制该值(levelOfControl 将设置为“controlled_by_other_extensions”),那么用户不会看到其设置有任何变化。set() 调用将成功,但设置会立即被覆盖。由于这可能会让用户感到困惑,因此建议在用户选择的设置实际上未应用时提醒用户。

这意味着,您应该使用 get() 方法来确定您的访问权限级别,然后仅在扩展程序可以控制相应设置时才调用 set()(实际上,如果扩展程序无法控制相应设置,最好在视觉上停用该功能,以减少用户困惑):

chrome.privacy.services.autofillEnabled.get({}, function(details) {
  if (details.levelOfControl === 'controllable_by_this_extension') {
    chrome.privacy.services.autofillEnabled.set({ value: true }, function() {
      if (chrome.runtime.lastError === undefined) {
        console.log("Hooray, it worked!");
      } else {
        console.log("Sadness!", chrome.runtime.lastError);
      }
    });
  }
});

如果您对设置值的变化感兴趣,请为其 onChange 事件添加监听器。除了其他用途之外,此功能还允许您在最近安装的扩展程序获取设置控制权或企业政策替换您的控制权时警告用户。如需监听自动填充状态的变化,例如,以下代码就足够了:

chrome.privacy.services.autofillEnabled.onChange.addListener(
  function (details) {
    // The new value is stored in `details.value`, the new level of control
    // in `details.levelOfControl`, and `details.incognitoSpecific` will be
    // `true` if the value is specific to Incognito mode.
  }
);

示例

如需试用此 API,请从 chrome-extension-samples 代码库中安装隐私权 API 示例

类型

IPHandlingPolicy

Chrome 48 及更高版本

WebRTC 的 IP 处理政策。

枚举

“默认”

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

属性

network

影响 Chrome 一般网络连接处理方式的设置。

类型

对象

属性

  • networkPredictionEnabled

    如果启用,Chrome 会尝试预先解析 DNS 条目并抢先打开与服务器的 TCP 和 SSL 连接,从而加快您的网页浏览速度。此偏好设置仅影响 Chrome 内部预测服务采取的操作。它不会影响网页发起的预取或预连接。此偏好的值为布尔值,默认值为 true

  • webRTCIPHandlingPolicy
    Chrome 48 及更高版本

    允许用户指定媒体性能/隐私权权衡,这会影响 WebRTC 流量的路由方式以及公开的本地地址信息量。此偏好的值为 IPHandlingPolicy 类型,默认值为 default

services

用于启用或停用需要 Google 和默认搜索引擎提供的第三方网络服务的功能的设置。

类型

对象

属性

  • alternateErrorPagesEnabled

    如果启用,Chrome 会使用网络服务来帮助解决导航错误。此偏好的值为布尔值,默认值为 true

  • autofillAddressEnabled
    Chrome 70 及更高版本

    如果启用此设置,Chrome 会建议自动填充地址和其他表单数据。此偏好的值为布尔值,默认值为 true

  • autofillCreditCardEnabled
    Chrome 70 及更高版本

    如果启用,Chrome 会提供自动填写信用卡表单的功能。此偏好的值为布尔值,默认值为 true

  • autofillEnabled
    自 Chrome 70 起已弃用

    请改用 privacy.services.autofillAddressEnabled 和 privacy.services.autofillCreditCardEnabled。此属性保留在此版本中是为了实现向后兼容性,但未来会移除。

    如果启用此设置,Chrome 会提供自动填写表单的选项。此偏好的值为布尔值,默认值为 true

  • passwordSavingEnabled

    启用此项后,密码管理工具会询问您是否要保存密码。此偏好的值为布尔值,默认值为 true

  • safeBrowsingEnabled

    如果启用此设置,Chrome 会尽最大努力保护您免遭钓鱼式攻击和恶意软件的侵害。此偏好的值为布尔值,默认值为 true

  • safeBrowsingExtendedReportingEnabled

    如果此政策处于启用状态,当安全浏览功能阻止某个网页时,Chrome 会向 Google 发送额外信息,例如被阻止网页的内容。此偏好的值为布尔值,默认值为 false

  • searchSuggestEnabled

    如果启用此设置,Chrome 会将您在多功能框中输入的文字发送给您的默认搜索引擎,后者会根据您目前输入的文字预测可能的网站和搜索补全选项。此偏好的值为布尔值,默认值为 true

  • spellingServiceEnabled

    如果启用,Chrome 会使用网络服务来帮助修正拼写错误。此偏好的值为布尔值,默认值为 false

  • translationServiceEnabled

    如果启用此政策,Chrome 会询问是否翻译非您所用语言的网页。此偏好的值为布尔值,默认值为 true

websites

用于确定 Chrome 向网站提供哪些信息的设置。

类型

对象

属性

  • adMeasurementEnabled
    Chrome 111 及更高版本

    如果停用,Attribution Reporting APIPrivate Aggregation API 将被停用。此偏好的值为布尔值,默认值为 true。扩展程序只能通过将值设置为 false 来停用这些 API。如果您尝试将这些 API 设置为 true,系统会抛出错误。

  • doNotTrackEnabled
    Chrome 65 及更高版本

    如果启用,Chrome 会在您的请求中发送“请勿跟踪”标头 (DNT: 1)。此偏好的值为布尔值,默认值为 false

  • fledgeEnabled
    Chrome 111 及更高版本

    如果停用,Fledge API 将处于停用状态。此偏好的值为布尔值,默认值为 true。扩展程序只能通过将值设置为 false 来停用此 API。如果您尝试将此 API 设置为 true,则会抛出错误。

  • hyperlinkAuditingEnabled

    如果启用,Chrome 会在网站请求时发送审核 ping (<a ping>)。此偏好的值为布尔值,默认值为 true

  • protectedContentEnabled

    仅适用于 Windows 和 ChromeOS:如果启用,Chrome 会向插件提供一个唯一 ID,以便运行受保护的内容。此偏好的值为布尔值,默认值为 true

  • referrersEnabled

    如果启用,Chrome 会随请求发送 referer 标头。是的,此偏好的名称与拼写错误的标头不一致。不会,我们不会更改。此偏好的值为布尔值,默认值为 true

  • relatedWebsiteSetsEnabled
    Chrome 121 及更高版本

    如果停用,Related Website Sets 会被停用。此偏好的值为布尔值,默认值为 true。扩展程序只能通过将值设置为 false 来停用此 API。如果您尝试将此 API 设置为 true,则会抛出错误。

  • thirdPartyCookiesAllowed

    如果停用,Chrome 会阻止第三方网站设置 Cookie。此偏好的值为布尔值,默认值为 true。扩展程序不得在无痕模式下启用此 API。在无痕模式下,第三方 Cookie 会被屏蔽,并且只能在网站级别允许使用。如果您尝试在无痕模式下将此 API 设置为 true,则会抛出错误。

    注意:如果个别网站具有有效的豁免,或者它们改用 Storage Access API,则即使此 API 返回 false,它们可能仍然能够访问第三方 Cookie。

  • topicsEnabled
    Chrome 111 及更高版本

    如果停用,Topics API 将处于停用状态。此偏好的值为布尔值,默认值为 true。扩展程序只能通过将值设置为 false 来停用此 API。如果您尝试将此 API 设置为 true,则会抛出错误。