privacy.network

privacy.network 属性包含与隐私相关的网络设置。每个属性都是一个 types.BrowserSetting 对象。

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

属性

networkPredictionEnabled

一个 types.BrowserSetting 对象,其底层值为布尔值。如果为 true,则浏览器尝试通过预解析 DNS 条目、预渲染站点(例如,使用 <link rel='prefetch' …>)以及抢先打开到服务器的 TCP 和 TLS 连接来加快 Web 浏览速度。

peerConnectionEnabled

一个 types.BrowserSetting 对象,其底层值为布尔值。如果为 false,则 RTCPeerConnection 接口将被禁用。请注意,getUserMedia() 不受此设置的影响。

webRTCIPHandlingPolicy

一个 types.BrowserSetting 对象,其底层值为字符串。此设置允许用户指定会影响 WebRTC 流量路由方式以及公开多少本地地址信息的媒体性能/隐私权衡。它可以取以下任意一个值,从隐私性最低到隐私性最高

  • default
  • default_public_and_private_interfaces
  • default_public_interface_only
  • disable_non_proxied_udp
  • proxy_only(仅允许使用通过代理的 TCP 连接上的 TURN 进行连接)
httpsOnlyMode

此设置允许您的扩展确定用户是否已启用 仅 HTTPS 模式。此属性在所有平台上都是只读的。其底层值为一个字符串,可以取三个值中的一个

  • "always":仅 HTTPS 模式已开启。
  • "never":仅 HTTPS 模式已关闭。
  • "private_browsing":仅 HTTPS 模式仅在隐私浏览窗口中开启。
globalPrivacyControl

此设置允许您的扩展确定用户是否已启用 全局隐私控制。此属性在所有平台上都是只读的。其底层值为一个布尔值,其中 true 表示浏览器发送全局隐私控制信号,而 false 表示浏览器不发送信号。

浏览器兼容性

BCD 表格仅在浏览器中加载

示例

设置 webRTCIPHandlingPolicy 属性

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

browser.browserAction.onClicked.addListener(() => {
  let getting = browser.privacy.network.webRTCIPHandlingPolicy.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.network.webRTCIPHandlingPolicy.set({
        value: "default_public_interface_only",
      });
      setting.then(onSet);
    } else {
      console.log("Not able to set webRTCIPHandlingPolicy");
    }
  });
});

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