chrome.privacy

说明

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

权限

privacy

您必须声明“隐私”权限,才能使用该 API。例如:

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

概念和用法

读取 Chrome 设置的当前值非常简单。您首先需要找到 属性,那么您将需要对该对象调用 get(),以检索其 当前值以及您的扩展程序的控制级别。例如,确定 Chrome 的信用卡是否自动填充 您需要编写:

chrome.privacy.services.autofillCreditCardEnabled.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.autofillCreditCardEnabled.get({}, function(details) {
  if (details.levelOfControl === 'controllable_by_this_extension') {
    chrome.privacy.services.autofillCreditCardEnabled.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.autofillCreditCardEnabled.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 中的 privacy API 示例 存储库

类型

IPHandlingPolicy

Chrome 48 及更高版本

WebRTC 的 IP 处理政策。

枚举

"默认"

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

属性

network

一般来说,影响 Chrome 对网络连接处理的设置。

类型

对象

属性

  • networkPredictionEnabled

    types.ChromeSetting<boolean>

    启用此选项后,Chrome 会尝试预先解析 DNS 条目并提前打开与服务器的 TCP 和 SSL 连接,从而提升您的网络浏览体验。此偏好设置仅影响 Chrome 内部联想查询服务执行的操作。而不会影响由网页启动的县或预连接。此偏好设置的值是一个布尔值,默认为 true

  • webRTCIPHandlingPolicy
    Chrome 48 及更高版本

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

services

通过这些设置,您可以启用或停用需要使用由 Google 和您的默认搜索服务提供商提供的第三方网络服务的功能。

类型

对象

属性

  • alternateErrorPagesEnabled

    types.ChromeSetting<boolean>

    启用后,Chrome 会使用网络服务帮助解决导航错误。此偏好设置的值是一个布尔值,默认为 true

  • autofillAddressEnabled

    types.ChromeSetting<boolean>

    Chrome 70 及更高版本

    启用后,Chrome 会询问您是否自动填充地址和其他表单数据。此偏好设置的值是一个布尔值,默认为 true

  • autofillCreditCardEnabled

    types.ChromeSetting<boolean>

    Chrome 70 及更高版本

    启用后,Chrome 会询问您是否自动填充信用卡表单。此偏好设置的值是一个布尔值,默认为 true

  • autofillEnabled

    types.ChromeSetting<boolean>

    <ph type="x-smartling-placeholder"></ph> 自 Chrome 70 起弃用

    请使用 privacy.services.autofillAddressEnabled 和 privacy.services.autofillCreditCardEnabled。这仍然是为了实现此版本的向后兼容性,日后将被移除。

    启用后,Chrome 会询问您是否自动填充表单。此偏好设置的值是一个布尔值,默认为 true

  • passwordSavingEnabled

    types.ChromeSetting&lt;boolean&gt;

    启用后,密码管理器会询问您是否要保存密码。此偏好设置的值是一个布尔值,默认为 true

  • safeBrowsingEnabled

    types.ChromeSetting&lt;boolean&gt;

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

  • safeBrowsingExtendedReportingEnabled

    types.ChromeSetting&lt;boolean&gt;

    启用后,当安全浏览功能屏蔽某个网页时,Chrome 会向 Google 发送更多信息,例如所屏蔽网页的内容。此偏好设置的值是一个布尔值,默认为 false

  • searchSuggestEnabled

    types.ChromeSetting&lt;boolean&gt;

    启用后,Chrome 会将您在多功能框中输入的文字发送给您的默认搜索引擎,默认搜索引擎会为您提供网站和搜索内容的联想查询,这些内容很可能是您目前所输入的内容。此偏好设置的值是一个布尔值,默认为 true

  • spellingServiceEnabled

    types.ChromeSetting&lt;boolean&gt;

    启用后,Chrome 会使用网络服务帮助更正拼写错误。此偏好设置的值是一个布尔值,默认为 false

  • translationServiceEnabled

    types.ChromeSetting&lt;boolean&gt;

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

websites

决定 Chrome 向网站提供哪些信息的设置。

类型

对象

属性

  • adMeasurementEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 111 及更高版本

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

  • doNotTrackEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 65 及更高版本

    启用后,Chrome 会发送“Do Not Track”(DNT: 1) 标头与您的请求一起传递。此偏好设置的值为布尔值类型,默认值为 false

  • fledgeEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 111 及更高版本

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

  • hyperlinkAuditingEnabled

    types.ChromeSetting&lt;boolean&gt;

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

  • protectedContentEnabled

    types.ChromeSetting&lt;boolean&gt;

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

  • referrersEnabled

    types.ChromeSetting&lt;boolean&gt;

    启用后,Chrome 会随您的请求一起发送 referer 标头。是的,此偏好设置的名称与拼写错误的标题不匹配。不会,我们不会更改它。此偏好设置的值为布尔值类型,默认值为 true

  • relatedWebsiteSetsEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 121 及更高版本

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

  • thirdPartyCookiesAllowed

    types.ChromeSetting&lt;boolean&gt;

    如果此政策已停用,Chrome 会阻止第三方网站设置 Cookie。此偏好设置的值为布尔值类型,默认值为 true

  • topicsEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 111 及更高版本

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