privacy.network

privacy.network 屬性包含與隱私相關的網路設定。每個屬性都是一個 types.BrowserSetting 物件。

這些屬性的預設值在不同瀏覽器中往往會有所不同。

屬性

networkPredictionEnabled

一個 types.BrowserSetting 物件,其底層值為布林型別。如果為 true,則瀏覽器會嘗試透過預解析 DNS 條目、預渲染網站(例如使用 <link rel='prefetch' …>)以及提前開啟到伺服器的 TCP 和 TLS 連線來加速網頁瀏覽。

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

此設定允許您的擴充套件確定使用者是否已啟用 全域性隱私控制元件 (Global Privacy Control)。此屬性在所有平臺上都是隻讀的。其底層值為布林型別,其中 true 表示瀏覽器傳送全域性隱私控制元件訊號,false 表示瀏覽器不傳送訊號。

示例

設定 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