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-Only 模式。该属性在所有平台上都是只读的。其底层值是一个字符串,可以取以下三个值之一:

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

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

浏览器兼容性

BCD tables only load in the browser

示例

设置 webRTCIPHandlingPolicy 属性:

js
function onSet(result) {
  if (result) {
    console.log("成功");
  } else {
    console.log("失败");
  }
}

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("无法设置 webRTCIPHandlingPolicy");
    }
  });
});

备注: 该 API 基于 Chromium 的 chrome.privacy API。本文衍生自 Chromium 代码中的 privacy.json