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 并隔离第三方 cookie。
  • nonPersistentCookies 已弃用 :一个布尔值。如果为 true,则所有 cookie 都将被视为会话 cookie。

firstPartyIsolate

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

如果设置为 truefirstPartyIsolate 首选项将使浏览器将任何第三方域的所有数据(包括 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 收集与浏览器或其运行设备相关的状态或配置数据的做法。通过这样做,它们可以构建一个数字指纹,用于识别和跟踪特定用户。

如果设置为 trueresistFingerprinting 首选项将使浏览器报告常用的指纹识别数据的通用欺骗信息。这些数据包括 CPU 核心数、JavaScript 定时器的精度以及本地时区。它还将禁用用于指纹识别的功能,例如 GamePad 支持、WebSpeech 和 Navigator API。

默认为 false

thirdPartyCookiesAllowed

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

trackingProtectionMode

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

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

示例

设置 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