privacy.websites

privacy.websites 属性包含与隐私相关的设置,用于控制浏览器与网站交互的方式。每个属性都是一个 types.BrowserSetting 对象。

这些属性的默认值在不同浏览器之间往往有所不同。

属性

cookieConfig

一个 types.BrowserSetting 对象,其底层值为一个对象。

该对象有两个属性

  • behavior: 一个字符串,可以取以下任何值
    • "allow_all": 接受所有 Cookie
    • "reject_all": 拒绝所有 Cookie
    • "reject_third_party": 拒绝所有第三方 Cookie
    • "allow_visited": 仅当 Cookie 的顶级域名已至少包含一个 Cookie 时,才接受第三方 Cookie。
    • "reject_trackers": 拒绝跟踪 Cookie
    • "reject_trackers_and_partition_foreign": 拒绝跟踪程序并对第三方 Cookie 进行分区。
  • nonPersistentCookies 已弃用 : 一个布尔值。如果为 true,则所有 Cookie 将被视为会话 Cookie。
firstPartyIsolate

一个 types.BrowserSetting 对象,其底层值为一个布尔值。

如果 true,则 firstPartyIsolate 首选项使浏览器将所有数据(包括 Cookie、HSTS 数据、缓存的图像等)与地址栏中的域名相关联。这可以防止第三方跟踪程序使用直接存储的信息来识别用户在不同网站上的身份,但也可能会破坏用户使用第三方帐户(例如 Facebook 或 Google 帐户)登录的网站。

默认为 false

hyperlinkAuditingEnabled

一个 types.BrowserSetting 对象,其底层值为一个布尔值。如果 true,则浏览器在网站使用 ping 属性请求它们时发送审核 ping。

protectedContentEnabled

一个 types.BrowserSetting 对象,其底层值为一个布尔值。仅在 Windows 上可用。如果 true,则浏览器向插件提供唯一 ID 以运行受保护的内容。

referrersEnabled

一个 types.BrowserSetting 对象,其底层值为一个布尔值。如果启用,则浏览器会将 referer 标头与您的请求一起发送。

resistFingerprinting

一个 types.BrowserSetting 对象,其底层值为一个布尔值。

浏览器指纹识别是网站使用 Web API 收集与浏览器或其运行设备关联的状态或配置数据的方式。通过这样做,他们可以构建一个数字指纹,他们可以使用它来识别和跟踪特定用户。

如果 true,则 resistFingerprinting 首选项使浏览器报告常用作指纹识别的数据的通用欺骗信息。此类数据包括 CPU 内核数、JavaScript 计时器的精度和本地时区。它还会禁用用于指纹识别的功能,例如 GamePad 支持以及 WebSpeech 和 Navigator API。

默认为 false

thirdPartyCookiesAllowed

一个 types.BrowserSetting 对象,其底层值为一个布尔值。如果 false,则浏览器会阻止 第三方 Cookie

trackingProtectionMode

"跟踪保护" 是一项浏览器功能,它会阻止对已知参与跨站点用户跟踪的域的请求。跟踪用户的网站最常见的是第三方广告和分析网站。此设置是一个 types.BrowserSetting 对象,用于确定浏览器是否应启用跟踪保护。其底层值为一个字符串,可以取以下三个值之一

  • "always": 跟踪保护已开启。
  • "never": 跟踪保护已关闭。
  • "private_browsing": 跟踪保护仅在隐身窗口中开启。

浏览器兼容性

BCD 表格仅在浏览器中加载

示例

设置 hyperlinkAuditingEnabled 属性。

js
function onSet(result) {
  if (result) {
    console.log("success");
  } else {
    console.log("failure");
  }
}

browser.browserAction.onClicked.addListener(() => {
  let getting = browser.privacy.websites.hyperlinkAuditingEnabled.get({});
  getting.then((got) => {
    console.log(got.value);
    if (
      got.levelOfControl === "controlled_by_this_extension" ||
      got.levelOfControl === "controllable_by_this_extension"
    ) {
      let setting = browser.privacy.websites.hyperlinkAuditingEnabled.set({
        value: true,
      });
      setting.then(onSet);
    } else {
      console.log("Not able to set hyperlinkAuditingEnabled");
    }
  });
});

注意:此 API 基于 Chromium 的 chrome.privacy API。此文档源自 Chromium 代码中的 privacy.json